You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aggregation-platform/plugins/system/ts/systemVerification.ts

280 lines
11 KiB

/// <reference path="../../includes.ts"/>
/// <reference path="systemPlugin.ts"/>
/// <reference path="systemHelpers.ts"/>
/// <reference path="systemServices.ts"/>
8 years ago
/// <reference path="../../configs/ts/configsUtils.ts"/>
/// <reference path="../../kubernetes/ts/kubernetesHelpers.ts"/>
/// <reference path="../../configs/ts/customAlert.ts"/>
/// <reference path="../../configs/ts/configsDataService.ts"/>
8 years ago
module System{
export var SystemVerificationController = controller('SystemVerificationController', ['$scope', '$location', '$http', '$templateCache', 'Upload', 'NgTableParams', 'ngDialog', 'SystemModel', '$element', '$timeout', 'ConfigsModel', 'DataModel', ($scope, $location, $http, $templateCache, Upload, NgTableParams, ngDialog, SystemModel, $element, $timeout, ConfigsModel, DataModel) => {
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) =>{
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
});
}
}
8 years ago
$scope.deleteRows = () =>{
var filter = [];
if($scope.tableData && $scope.tableData.length > 0){
angular.forEach($scope.tableData, (item) => {
if($scope.checkboxes.items[item.id])
filter.push(item);
});
$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 "请求失败"
});
}
}
$scope.check = () => {
var sqlServerDB = [];
var oracleDB = [];
/**
**
**/
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;
}
item["_key"] = item.areaCode + "-" + item.sysCode + "-" + item.dataVersion;
if(item.dataBaseType == 'ORACLE'){
oracleDB.push(item);
}else{
sqlServerDB.push(item);
}
}
}
if(oracleDB.length >= 0){
/*
*/
var exitedOracle = Kubernetes.checkForCreateOracle(DataModel.transferTasks, oracleDB);
var exitedSqlServer = Kubernetes.checkForCreateOracle(DataModel.transferTasks, sqlServerDB);
if(exitedSqlServer.length > 0 || exitedOracle.length > 0){
Configs.customAlert("提示", "操作失败: 正在迁移的数据不能执行校验操作!", '', null, 0, "error");
return;
}
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
},
path: item.dataPath+"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: oracleDB
}).success((data, header, config, status) => {
/*$scope.tableData = data.data;
8 years ago
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({
8 years ago
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',
8 years ago
width: 900,
height: 600,
closeByDocument: false,
data: entity,
8 years ago
scope: $scope,
className: 'ngdialog-theme-default'
});
8 years ago
}
$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");
});
});
}]);
}