/// /// /// /// /// /// /// /// /// module System{ export var SystemVerificationController = controller('SystemVerificationController', ['$scope', '$interval', '$location', '$http', '$templateCache', 'Upload', 'NgTableParams', 'ngDialog', 'SystemModel', '$element', '$timeout', 'ConfigsModel', 'DataModel', 'TerminalService', 'KubernetesModel', ($scope, $interval, $location, $http, $templateCache, Upload, NgTableParams, ngDialog, SystemModel, $element, $timeout, ConfigsModel, DataModel, TerminalService, KubernetesModel) => { shareInit($scope); $scope.cities = classifyCity(SystemModel.regionalismInfo); $scope.model = SystemModel; $scope.tableData = null; $scope.checkboxes = { checked: false, items: {} }; // 表数据 $scope.tableParams = new NgTableParams({count: 25}, { counts: [25, 50, 100], dataset: $scope.tableData }); $scope.citySelect = (x) =>{ $scope.countries=[]; $scope.y = "all"; if(x != 'all'){ $scope.countries = classifyCountry(SystemModel.regionalismInfo, x); $http({ url: "/java/console/api/checkout/findByCity", method: "POST", data: x }).success((data, header, config, status) => { $scope.tableData =data.data; $scope.tableParams.settings({ dataset: $scope.tableData }); }).error((data, header, config, status) => { throw "请求失败" }); }else{ //$scope.countries=[]; //$scope.y = "all"; $scope.tableData = null; $scope.checkboxes = { checked: false, items: {} }; } } $scope.countrySelect = (y) => { if(y != 'all'){ var result = []; angular.forEach($scope.tableData, (item) => { if(item.districtName == y) result.push(item); }); $scope.tableParams.settings({ dataset: result }); }else{ $scope.tableParams.settings({ dataset: $scope.tableData }); } } $scope.checkSQLSERVER = () => { /** ** 检查是否有默认标准表汇总库 **/ var answer = false; for (var i = 0; i < ConfigsModel.oracleParam.length; ++i) { if(ConfigsModel.oracleParam[i].type == 1){ answer = true break; } } if(answer == false){ /** 提示没有配置标准表汇总库 **/ Configs.customAlert("提示", "操作失败:没有配置默认的标准表汇总库", '',null, 0, "error"); return; } var selectedItems = []; if($scope.tableData && $scope.tableData.length > 0){ for (var i = 0; i < $scope.tableData.length; ++i) { var item = $scope.tableData[i]; if($scope.checkboxes.items[item.id]){ if(item.collection == '否'){ /* **提示出现没有采集数据的信息系统 code */ Configs.customAlert("提示", "操作失败:选择的系统存在没有数据的系统", '',null, 0, "error"); return; }7 item["_key"] = item.areaCode + "-" + item.sysCode + "-" + item.dataVersion; if(item.dataBaseType == 'ORACLE'){ Configs.customAlert("提示", "操作失败:ORACLE数据请在服务集群界面中抽取标准表!", '',null, 0, "error"); return; } selectedItems.push(item); } } $http({ url: "/java/console/api/checkout/extractList", method: "POST", data: selectedItems }).success((data, header, config, status) => { //console.log(data); }).error((data, header, config, status) => { throw "请求失败" }); } } $scope.deleteRows = () =>{ var filter = []; if($scope.tableData && $scope.tableData.length > 0){ angular.forEach($scope.tableData, (item) => { if($scope.checkboxes.items[item.id]){ item["index"] = item.cityName + "_" + item.districtName + "_" + item.sysName + "_" + item.year + "_版本" + item.dataVersion; item["_key"] = item.areaCode + "-" + item.sysCode + "-" + item.dataVersion; filter.push(item); } }); } //检查数据是否存在 for(var i = 0; i < filter.length; i++){ if(filter[i].collection == '否'){ Configs.customAlert("提示", "操作失败:部分数据不存在,无法删除", '',null, 0, "error"); return; } } //检查数据是否已启动 //检查数据是否在迁移 var message = Kubernetes.checkForMigration(KubernetesModel.replicationControllers, DataModel.transferTasks, filter, "verify"); if(message != ""){ Configs.customAlert("提示", "操作失败:部分数据" + message +",无法删除", '',null, 0, "error"); return } UI.multiItemConfirmActionDialog({ collection: filter, index: 'index', onClose: (result:boolean) => { if(result){ $http({ url: "/java/console/api/checkout/deleteList", method: "POST", data: filter }).success((data, header, config, status) => { $scope.tableData = data.data; var result = []; if($scope.y != 'all'){ angular.forEach($scope.tableData, (item) =>{ if(item.districtName == $scope.y) result.push(item); }); }else{ result = $scope.tableData; } $scope.tableParams.settings({ dataset: result }); }).error((data, header, config, status) => { throw "请求失败" }); } }, title: '是否需要删除采集数据?', action: '以下采集数据文件将会被删除:', okText: '删除', okClass: 'btn-danger sj_btn_cir', custom: "该删除操作将会彻底删除数据文件,是否删除,请确认!", customClass: "alert alert-warning sj_alert-warning", cancelText: "取消", cancelClass: 'sj_btn_grey' }).open(); } $scope.check = () => { //var sqlServerDB = []; var oracleDB = []; var selectedItems = []; /** ** 检查是否有默认标准表汇总库 **/ var answer = false; for (var i = 0; i < ConfigsModel.oracleParam.length; ++i) { if(ConfigsModel.oracleParam[i].type == 1){ answer = true break; } } if(answer == false){ /** 提示没有配置标准表汇总库 **/ Configs.customAlert("提示", "操作失败:没有配置默认的标准表汇总库", '',null, 0, "error"); return; } if($scope.tableData && $scope.tableData.length > 0){ for (var i = 0; i < $scope.tableData.length; ++i) { var item = $scope.tableData[i]; if($scope.checkboxes.items[item.id]){ if(item.collection == '否'){ /* **提示出现没有采集数据的信息系统 code */ Configs.customAlert("提示", "操作失败:选择的系统存在没有数据的系统", '',null, 0, "error"); return; } /** */ /*if(item.payResultLast == 1){ Configs.customAlert("提示", "操作失败:选择的系统存在不需要校验的系统", '',null, 0, "error"); return; } /** 检查数据是否在热区 */ if(item.mark == 1 && item.dataBaseType == 'ORACLE'){ Configs.customAlert("提示", "操作失败:选择的系统的数据存储在冷区,请先将数据迁移到热区再检验!", '',null, 0, "error"); return } item["_key"] = item.areaCode + "-" + item.sysCode + "-" + item.dataVersion; selectedItems.push(item); if(item.dataBaseType == 'ORACLE'){ oracleDB.push(item); } } } /* 此处需要检查数据是否已挂载、正在迁移。 */ var exited = Kubernetes.checkForCreateOracle(DataModel.transferTasks, selectedItems); if(exited.length > 0 ){ Configs.customAlert("提示", "操作失败: 正在迁移的数据不能执行校验操作!", '', null, 0, "error"); return; } /* 如果是Oracle数据,先启动oracle数据 */ if(oracleDB.length > 0){ angular.forEach(oracleDB, (item) =>{ Kubernetes.createRC({ name: item._key, labels: { system: item.sysCode.toString(), version: item.dataVersion.toString(), region: item.areaCode.toString() }, annotations: { cityName: item.cityName, districtName: item.districtName, systemName: item.sysName, id: item.dataId+"", year: item.year, checkoutFlag: item.checkoutFlag }, path: item.path+"app/", isTarget: "false", isExtract: item.extractStatus }, (rc) =>{ //Kubernetes.connectOracle($http, $timeout, "/java/console/api/connectOracle", "create", rc, 0); }); }); $timeout(() => { $location.path('/kubernetes/namespace/default/replicationControllers'); }, 500); } $http({ url: "/java/console/api/checkout/checkList", method: "POST", data: selectedItems }).success((data, header, config, status) => { $scope.tableData = data.data; var result = []; if($scope.y != 'all'){ angular.forEach($scope.tableData, (item) =>{ if(item.districtName == $scope.y) result.push(item); }); }else{ result = $scope.tableData; } $scope.tableParams.settings({ dataset: result }); }).error((data, header, config, status) => { throw "请求失败" }); } } // watch for check all checkbox $scope.$watch(function() { return $scope.checkboxes.checked; }, function(value) { angular.forEach($scope.tableData, function(item) { $scope.checkboxes.items[item.id] = value; }); }); // watch for data checkboxes $scope.$watch(function() { return $scope.checkboxes.items; }, function(values) { $scope.checkable = false; for(var index in values){ if(values[index] == true){ $scope.checkable = true; break; } } var checked = 0, unchecked = 0, total = -1; if($scope.tableData && ($scope.tableData instanceof Array)) total = $scope.tableData.length; angular.forEach($scope.tableData, function(item) { checked += ($scope.checkboxes.items[item.id]) || 0; unchecked += Number(!$scope.checkboxes.items[item.id]) || 0; }); if ((unchecked == 0) || (checked == 0)) { $scope.checkboxes.checked = (checked == total); } // grayed checkbox angular.element($element[0].getElementsByClassName("select-all")).prop("indeterminate", (checked != 0 && unchecked != 0)); }, true); $scope.update = (entity) => { ngDialog.open({ template: 'sysVerificationUpdate.html', controller: 'Configs.sysVerUpdateController', width: 900, height: 600, closeByDocument: false, data: entity, scope: $scope, className: 'ngdialog-theme-default' }); } $scope.$on('updateRow', (event, data) => { $http({ url: "/java/console/api/checkout/update", method:'POST', data: JSON.stringify(data) }).success(function(data,header,config,status){ if(header == 200){ Configs.customAlert("提示", "操作成功!", '',null, 0, "success"); var result = []; if($scope.y != 'all'){ angular.forEach(data.data, (item) => { if($scope.y == item.districtName) result.push(item); }) }else result = data.data; $scope.tableParams.settings({ dataset: result }); } else Configs.customAlert("提示", "操作失败!", '',null, 0, "error"); }).error(function(data,header,config,status){ Configs.customAlert("提示", "操作失败:发生请求失败,不能删除!", '',null, 0, "error"); }); }); $scope.openLog = (entity) => { var name = entity.areaCode + "_" + entity.sysCode + "_" + entity.dataVersion var containerName = entity.cityName + "-" + entity.districtName + "-" + entity.sysName + "-版本" + entity.dataVersion; entity["name"] = name; TerminalService.newTerminal($interval, entity.id+"", containerName, entity, "/java/console/api/standardextract/log?rcName=" + name, $templateCache.get(UrlHelpers.join(Kubernetes.templatePath, 'logShell.html'))); } }]); }