console.info('v3.5.0');
var app = angular.module('itsmApp', ['itsm-dep']);
var domainName = location.host;//域名 + 端口
var hostname = location.hostname; //域名
var protocolName = document.location.protocol;//http协议
var wsName = protocolName === "http:" ? "ws" : "wss"; //ws协议
// var appchild = angular.module('itsmApp', ['itsm-dep']);
//本地测试
// var serverIp = "http://localhost/service";
// var reportIp = "http://localhost/service";
// var inspectIp = "http://localhost/service";
// var imgBaseUrl = "http://localhost";
// var callIp = "http://192.168.3.122:29005";
//线上
var serverIp = protocolName + "//" + domainName + "/service";
var reportIp = protocolName + "//" + domainName + "/service";
// var inspectIp = protocolName + "//" + domainName + "/service";
var inspectIp = "http://192.168.77.57";
var imgBaseUrl = protocolName + "//" + domainName;
var callIp = protocolName + "//" + domainName;
// var seiminCallIp = '192.168.3.233';//本地
// var seiminCallIp = '202.114.235.100';//财大
var seiminCallIp = '172.16.104.99:5678';
var seiminCallBoxIp = wsName + '://'+ domainName +'/webSocket/message/phone';
// var seiminCallBoxIp = 'ws://192.168.3.111:29999/webSocket/message/phone';
// if(document.domain === 'itsm.zuel.edu.cn'){
//     seiminCallIp = '202.114.235.100:5678';//财大
// }else{
//     seiminCallIp = '192.168.3.233:5678';//本地
// }
// 信用社
// var serverIp = "http://192.168.2.63:80/service"; //跟其他有关
// var reportIp = "http://192.168.2.63:80/service"; //跟报表有关
// var inspectIp = "http://192.168.2.63:80/service";
// var callIp = "http://192.168.2.63:80/service";
//101测试
// var serverIp = "http://192.168.3.101/service";
// var reportIp = "http://192.168.3.101/service";
// var inspectIp = "http://192.168.3.101/service";
// var imgBaseUrl = "http://192.168.3.101";//富文本框上传图片路径
// var callIp = "http://192.168.3.122:29005";
// 139
// var serverIp = "http://itsmpoc.dashitech.com/service";
// var reportIp = "http://itsmpoc.dashitech.com/service"; //跟报表有关
// var inspectIp = "http://itsmpoc.dashitech.com/service";
// var callIp = "http://192.168.3.122:29005";
app.run(['$rootScope', '$state', '$stateParams', '$auth', '$http', '$cookieStore', 'Restangular', 'api_login',
    function ($rootScope, $state, $stateParams, $auth, $http, $cookieStore, Restangular, api_login) {
        $rootScope.seiminCallIp = seiminCallIp;
        $rootScope.seiminCallBoxIp = seiminCallBoxIp;
        // Attach Fastclick for eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers
        FastClick.attach(document.body);

        // Set some reference to access them from any scope
        $rootScope.$state = $state;
        $rootScope.$stateParams = $stateParams;
        // GLOBAL APP SCOPE
        // set below basic information
        // $rootScope.audioiIp="http://218.197.181.213:8080"
        $rootScope.app = {
            logo: '',
            favicon: '',
            name: '', // name of your project
            author: '', // author's name or company name
            description: '', // brief description
            version: 'V2.0', // current version
            year: ((new Date()).getFullYear()), // automatic current year (for copyright information)
            isMobile: (function () { // true if the browser is a mobile device
                var check = false;
                if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
                    check = true;
                };
                return check;
            })(),
            isChrome: false,
            isLoginFixed: false,
            layout: {
                // isLoginFixed: true,
                isNavbarFixed: true, //true if you want to initialize the template with fixed header
                isSidebarFixed: true, // true if you want to initialize the template with fixed sidebar
                isSidebarClosed: false, // true if you want to initialize the template with closed sidebar
                isFooterFixed: false, // true if you want to initialize the template with fixed footer
                theme: 'theme-8', // indicate the theme chosen for your project
                logo: 'assets/images/logo.png' // relative path of the project logo
            }
        };
        // 获取项目名称----网络与信息化运维管理系统
        $rootScope.getSysNameAndLogo = function () {
            api_login.getSysNameAndLogo().then(function (res) {
                $rootScope.app.name = $rootScope.app.author = $rootScope.app.description = res.sysName || '';
                $rootScope.app.layout.favicon = location.origin + '/file' + res.favicon || '';
                $rootScope.app.layout.logo = location.origin + '/file' + res.logo || '';
            })
        }
        $rootScope.getSysNameAndLogo();
        // $http.defaults.headers.common["X-Auth-Token"] = $cookieStore.get('Auth-Token') || null;
        // $http.defaults.headers.common["X-Auth-Token"] = $cookieStore.get('Auth-Token') || null;
        Restangular.setErrorInterceptor(function (element, operation, what, url, headers, queryParams) {
            if (!url) {
                // console.log($http);
                // console.log($auth);
                if (element.config.url ==
                    "http://testncc.hust.edu.cn/service/bpm/data/getCount"
                ) {
                    window.location.href = serviceip;
                    document.getElementById("casUserId").value = null;
                }
            }
            // console.log(element);
        })
        Restangular.setFullRequestInterceptor(function (element, operation, what, url, headers, queryParams) {
            var token = $cookieStore.get('Auth-Token') || null;
            var isReportUri = url.indexOf('saiku') > 0;
            if (token && isReportUri) {
                return {
                    element: element,
                    params: queryParams,
                    headers: _.extend({}, headers, {
                        'X-Auth-Token': $cookieStore.get('Auth-Token') || null
                    })
                };
            } else {
                return {
                    element: element,
                    params: queryParams,
                    headers: headers
                };
            }
        });
        Restangular.addResponseInterceptor(function (data, operation, what, url, response, deferred) {
            var ua = window.navigator.userAgent.toLowerCase();
            ua.match(/chrome/i)
            if (data) {
                if (data.state == "433") {
                    $rootScope.logout();
                    var Notification = window.Notification;
                    Notification.requestPermission();
                    sessionStorage.clear();
                    data = {};
                    var n = new Notification("登录退出", {
                        body: "您的账号在其他地方登录,请确认后重新登录",
                        icon: '../bower_components/HTML5-Desktop-Notifications/alert.ico',
                        onclick: function onNotificationClicked() {
                            console.log('Notification clicked.');
                        }
                    });
                } else if (data.state == "403") {
                    $state.go("app.dashboard");
                    var Notification = window.Notification;
                    Notification.requestPermission();
                    var n = new Notification("无权限访问", {
                        body: "此页面无权限访问",
                        icon: '../bower_components/HTML5-Desktop-Notifications/alert.ico',
                        onclick: function onNotificationClicked() {
                            console.log('Notification clicked.');
                        }
                    });
                } else {
                    deferred.resolve(data)
                }
            }
        });
        // $rootScope.nickname ='lijin';

        // $rootScope.user = {
        //     name: 'Peter',
        //     job: 'ng-Dev',
        //     picture: 'app/img/user/02.jpg'
        // };
    }
]);
// translate config
app.config(['$translateProvider',
    function ($translateProvider) {

        // prefix and suffix information  is required to specify a pattern
        // You can simply use the static-files loader with this pattern:
        $translateProvider.useStaticFilesLoader({
            prefix: 'assets/i18n/',
            suffix: '.json'
        });

        // Since you've now registered more then one translation table, angular-translate has to know which one to use.
        // This is where preferredLanguage(langKey) comes in.
        $translateProvider.preferredLanguage('zh');

        // Store the language in the local storage
        $translateProvider.useLocalStorage();

    }
]);
// Angular-Loading-Bar
// configuration
app.config(['cfpLoadingBarProvider',
    function (cfpLoadingBarProvider) {
        cfpLoadingBarProvider.includeBar = true;
        cfpLoadingBarProvider.includeSpinner = false;
    }
]);


/**
 * // http: //115.156.150.70:9680/webservice/data/fetchDataList/queryUser
 */
//信息中心 --wt
app.factory('msgRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/messageStation');
    });
});
app.factory('api_msg', ['msgRestangular', function (msgRestangular) {
    var msgService = msgRestangular.all("data");
    return {
        msgDataList: function (data) {
            return msgService.customPOST(data, 'fetchDataList/messageStation', {});
        },
        updateDataList: function (data) {
            return msgService.customPOST(data, 'updateModel/messageStation', {});
        },
        oneClickRead: function (data) {
            return msgService.customPOST(data, 'oneClickRead', {});
        },
    };
}]);


/**
 * // http: //115.156.150.70:9680/api/webservice/data/fetchDataList/queryUser
 */
app.config(['RestangularProvider', function (RestangularProvider) {
    RestangularProvider.setBaseUrl('');
}]);
app.factory('serviceip', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serviceip);
    });
});
app.factory('WechatRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/common/');
    });
});
// 故障现象
app.factory('eventCategory', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/bpm/data/');
    });
});
app.factory('jry_api_bpm', ['eventCategory', function (eventCategory) {
    var jry_incidentService = eventCategory.all("fetchDataList");
    var jry_add = eventCategory.all("addData");
    var jry_updata = eventCategory.all("updData");
    var jry_movdata = eventCategory.all("rmvData");
    var jry_fetchDeptByPhone = eventCategory.all("fetchDeptByPhone");//呼叫中心电话查详情
    return {
        //呼叫中心电话查详情
        jry_fetchDeptByPhone: function (key, data) {
            return jry_fetchDeptByPhone.customPOST(data, key, {});
        },
        jry_getFaultScri: function (key, data) {
            return jry_incidentService.customPOST(data, key, {});
        },
        jry_getIncidentScri: function (data) {
            return jry_incidentService.customPOST(data, 'incidentdescribe', {});
        },
        jry_getFetchDataList: function (data, key) {
            return jry_incidentService.customPOST(data, key, {});
        },
        jry_addFn: function (data, key) {
            return jry_add.customPOST(data, key, {});
        },
        jry_editFn: function (data, key) {
            return jry_updata.customPOST(data, key, {});
        },
        jry_movFn: function (data, key) {
            return jry_movdata.customPOST(data, key, {});
        }
    };
}]);
app.factory('api_wechatfile', ['WechatRestangular', function (WechatRestangular) {
    var dataService = WechatRestangular.all("common");
    return {
        jry_download: function (attachmentId) {
            return dataService.one('downloadAttachment/' + attachmentId);
        },
        listAttachments: function (type, model) {
            return dataService.customGET('listAttachment/' + type + "/" + model, {});
            // return dataService.one('listAttachment/' + type + "/" + model);
        },
        listAttachment: function (type, model) {
            return dataService.customGET('listAttachment/' + type + "/" + model, {});
            // return dataService.one('listAttachment/' + type + "/" + model);
        },
        downloadAttachment: function (model) {
            return dataService.one('downloadAttachment/' + model, {});
        },
        attachmentsPreviewUrl: function (attachmentId) {
            return dataService.customGET('attachmentsPreviewUrl/' + attachmentId);
        },
        download: function (attachmentId) {
            return dataService.one('getAttachmentContent/' + attachmentId);
        },
        getDictionary: function (data) {
            return dataService.customPOST(data, 'getDictionary', {});
        },
        getDictionaryForList: function (data) {
            return dataService.customPOST(data, 'getDictionaryForList', {});
        },
        addDictionary: function (data) {
            return dataService.customPOST(data, 'addDictionary', {});
        }
    };
}]);
//报表
app.factory('hkreportRestangular', function(Restangular) {
    return Restangular.withConfig(function(RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(reportIp + '/report');
    });
});
app.factory('api_hkreport', ['hkreportRestangular', function(hkreportRestangular) {
    var msgService = hkreportRestangular.all("data");
    return {
        incidentreport: function(data, key) {
            return msgService.customPOST(data, key, {});
        }
    };
}]);
app.factory('webserviceRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/webservice/');
    });
});
app.factory('api_webservice', ['webserviceRestangular', function (webserviceRestangular) {
    var dataService = webserviceRestangular.all("data");
    return {
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        }
    };
}]);
app.factory('api_webservice1', ['webserviceRestangular', function (webserviceRestangular) {
    var dataService = webserviceRestangular.all("");
    return {
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'samsQuery/' + model, {});
        }
    };
}]);
app.factory('playRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(callIp);
    });
});
app.factory('api_playservice', ['playRestangular', function (playRestangular) {
    var dataService = playRestangular.all("recording");
    return {
        playData: function (attachmentId) {
            return dataService.customGET('recording?callID=' + attachmentId);
        },
    };
}]);
app.factory('ConversationRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/conversation/');
    });
});

app.factory('api_conversation', ['ConversationRestangular', function (ConversationRestangular) {
    var dataService = ConversationRestangular.all("conversation");
    return {
        roleMenu: function (model) {
            return dataService.customGET('roleMenu/' + model, {});
        },
        pageMenuByCode: function (model) {
            return dataService.customGET('pageMenuByCode/' + model, {});
        },
        pageEvent: function (data, model) {
            return dataService.customPOST(data, 'pageEvent', {});
        }
    };
}]);

app.factory('textRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        // RestangularConfigurer.setBaseUrl(inspectIp + ':8080/IXServer/');
        RestangularConfigurer.setBaseUrl(inspectIp + ':8088/IXServer/');
    });
});
app.factory('api_text', ['textRestangular', function (textRestangular) {
    var loginService = textRestangular.all("comm");
    var loginsins = textRestangular.all("tele/agent");
    return {
        start: function (phone, id) {
            var rdata = "dom=0&epwd=&aid=" + id + "&apwd=e10adc3949ba59abbe56e057f20f883e&adn=" + phone;
            return loginService.customPOST(rdata, 'start', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        exit: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginService.customPOST(rdata, 'exit', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        login: function (group, token, id) {
            var rdata = "dom=0&token=" + token + "&aid=" + id + "&acd=" + group + "&skill=-1&mon=false&silent=false";
            return loginsins.customPOST(rdata, 'login', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        logout: function (token, id) {
            var rdata = "dom=0&token=" + token + "&aid=" + id + "";
            return loginsins.customPOST(rdata, 'logout', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        dialout: function (token, gid, teleno) {
            var rdata = "dom=0&token=" + token + "&teleno=" + teleno + "&gid=" + gid + "&uud=&async=true";
            return loginsins.customPOST(rdata, 'dialout', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        callout: function (token, teleno) {
            var rdata = "dom=0&token=" + token + "&teleno=" + teleno + "&uud=&async=true";
            return loginsins.customPOST(rdata, 'dialout', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        setbusy: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'setbusy', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        setidle: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'setidle', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        inittrans: function (telephone, token) {
            var rdata = "dom=0&token=" + token + "&teleno=" + telephone + "&uud=&async=true";
            return loginsins.customPOST(rdata, 'inittrans', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        comptrans: function (telephone, token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'comptrans', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        record: function (token) {
            var rdata = "dom=0&token=" + token + "&filename=/tmp/agent.wav&async=true&maxtime=10&termchar=&append=true";
            return loginsins.customPOST(rdata, 'record', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        offhook: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'offhook', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        onhook: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'onhook', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        },
        getcdrid: function (token) {
            var rdata = "dom=0&token=" + token;
            return loginsins.customPOST(rdata, 'getcdrid', {}, {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            });
        }
    }
}])



app.factory('UserRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp);
    });
});

app.factory('api_user', ['UserRestangular', function (UserRestangular) {
    var basePath = "user/";
    return {

    };
}]);
app.factory('api_report_data', ['UserRestangular', function (UserRestangular) {
    var basePath = UserRestangular.all("report/report/");
    var datas = UserRestangular.all("data");
    var form = UserRestangular.all("form");
    var formData = UserRestangular.all("formData");
    var reports = UserRestangular.all("report/data");
    return {
        fetchDataList: function (model, data) {
            return basePath.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchDataList1: function (model, data) {
            return datas.customPOST(data, 'fetchDataList/' + model, {});
        },
        report: function (model, data) {
            return basePath.customPOST(data, model, {});
        },
        addModel: function (model, data) {
            return basePath.customPOST(data, 'addModel/' + model, {});
        },
        updateModel: function (model, data) {
            return basePath.customPOST(data, 'updateModel/' + model, {});
        },
        rmModels: function (model, id) {
            return basePath.customPOST(null, 'rmModels/' + id + '/' + model, {});
        },
        updData: function (model, data) {
            return datas.customPOST(data, 'updData/' + model, {});
        },
        addData: function (model, data) {
            return datas.customPOST(data, 'addData/' + model, {});
        },
        rmvData: function (model, data) {
            return datas.customPOST(data, 'rmvData/' + model, {});
        },
        renderTabForm: function (model) {
            return form.customGET('renderTabForm/' + model);
        },
        updateForm: function (model, data) {
            return form.customPOST(data, 'updateForm/' + model, {});
        },
        formData: function (model, data) {
            return formData.customPOST(data, 'rmvData/' + model, {});
        },
        reportsData: function (model, data) {
            return reports.customPOST(data, model, {});
        }
    };
}]);


app.factory('api_login', ['UserRestangular', function (UserRestangular) {
    var loginService = UserRestangular.all("auth");
    return {
        getSysNameAndLogo: function () {
            return loginService.customGET('getSysNameAndLogo');
        },
        getProjectName: function () {
            return loginService.customGET('getSysName');
        },
        login: function (username, password) {
            return loginService.customPOST(username, 'loginEncrypt', {});
        },
        changeBranch: function (data) {
            return loginService.customPOST(data, 'changeBranch', {});
        },
        // logout: function(sessionid,userid){
        //   return loginService.customPOST(sessionid + '/' + userid);
        // },
        license: function (data) {
            return loginService.customPOST(data, 'license', {});
        },
        getLicense: function (data) {
            return loginService.customPOST(data, 'getLicense', {});
        },
        sso: function (nickname) {
            return loginService.customGET('sso/' + nickname);
        },
        resetpwd: function (userid) {
            return loginService.customGET('resetpwd/' + userid);
        },
        uppwd: function (data) {
            return loginService.customPOST(data, 'uppwd', {});
        }
    }
}])
app.factory('applyRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/apply/');
    });
});

app.factory('api_apply', ['applyRestangular', function (applyRestangular) {
    var applyService = applyRestangular.all("bpm");
    return {
        wxIncidentReject: function (id, data) {
            return applyService.customPOST(data, 'wxIncidentReject/' + id, {});
        }
    }
}])

app.factory('api_user_data', ['UserRestangular', function (UserRestangular) {
    var dataService = UserRestangular.all("user/data");
    var userService = UserRestangular.all("auth");
    return {
        cacheFresh: function (model) {
            return dataService.customPOST({}, 'cache/fresh/' + model, {});
        },
        validate: function (data) {
            return dataService.customPOST(data, 'validate/role', {});
        },
        importData: function () {
            return dataService.one('/importData');
        },
        importData1: function (type) {
            return dataService.one('/importData/'+type);
        },
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchData: function (model, data) {
            return dataService.customPOST(data, 'fetchData/' + model, {});
        },
        addData: function (model, data) {
            return dataService.customPOST(data, 'addData/' + model, {});
        },
        updData: function (model, data) {
            return dataService.customPOST(data, 'updData/' + model, {});
        },
        rmvData: function (model, data) {
            return dataService.customPOST(data, 'rmvData/' + model, {});
        },
        register: function (data) {
            return dataService.customPOST(data, 'register', {});
        },
        downDataModel: function (type, month) {
            return dataService.one('downDataModel/' + type + '/' + month);
        },
        fetchgetData: function (model, data) {
            return dataService.customGET('fetchData/' + model + '/' + data, {});
        },
        roleMenu: function (model) {
            return userService.customGET('roleMenu/' + model, {});
        },
        pageMenuByCode: function (model) {
            return userService.customGET('pageMenuByCode/' + model, {});
        },
        pageEvent: function (data, model) {
            return userService.customPOST(data, 'pageEvent', {});
        },
        pageMenu: function (data, model) {
            return userService.customPOST(data, 'pageMenu', {});
            // return userService.one('/pageMenu' + data);
        },
        getMenu: function (data, model) {
            return userService.customPOST(data, 'getMenu', {});
        },
        getOnlineInfo: function (date) {
            return userService.customPOST({}, 'onlineInfo/' + date, {});
        }
    };
}]);
// app.factory('DpmRestangular', function(Restangular) {
//   return Restangular.withConfig(function(RestangularConfigurer) {
//     RestangularConfigurer.setBaseUrl(serverIp+':9008/data/');
//   });
// });

// app.factory('api_bpm_dbca', ['DpmRestangular', function(DpmRestangular){
//     var bpm = DpmRestangular.all("bpm");
// return {
//     impFileData: function(pdKey){
//       return bpm.customPOST( 'impFileData/' + pdKey);
//     },
// };
// }]);
app.factory('CustomRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/custom');
    });
});
app.factory('api_custom', ['CustomRestangular', function (CustomRestangular) {
    var r_data = CustomRestangular.all("data");

    return {
        addListData: function (model, data) {
            return r_data.customPOST(data, 'addListData/' + model, {});
        },
        fetchDataList: function (model, data) {
            return r_data.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchData: function (model, data) {
            return r_data.customPOST(data, 'fetchData/' + model, {});
        },
        addData: function (model, data) {
            return r_data.customPOST(data, 'addData/' + model, {});
        },
        updData: function (model, data) {
            return r_data.customPOST(data, 'updData/' + model, {});
        },
        rmvData: function (model, data) {
            return r_data.customPOST(data, 'rmvData/' + model, {});
        },
    }
}]);


app.factory('BpmRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/');
        RestangularConfigurer.setBaseUrl(serverIp + '/bpm');
    });
});

app.factory('FlowRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/flow');
    });
});
app.factory('api_flow', ['FlowRestangular', function (FlowRestangular) {
    var r_data = FlowRestangular.all("");

    return {
        // 事件列表数量
        count: function (data) {
            return r_data.customPOST(data, 'incident/list/count', {});
        },
        // 建单
        accept: function (model, data) {
            return r_data.customPOST(data, 'incident/task/' + model, {});
        },
    }
}]);

app.factory('SimpleRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/simple');
    });
});
app.factory('api_simple', ['SimpleRestangular', function (SimpleRestangular) {
    var r_data = SimpleRestangular.all("data");

    return {
        addListData: function (model, data) {
            return r_data.customPOST(data, 'addListData/' + model, {});
        },
        fetchDataList: function (model, data) {
            return r_data.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchData: function (model, dataId) {
            return r_data.customGET('fetchData/' + model + '/' + dataId);
        },
        addData: function (model, data) {
            return r_data.customPOST(data, 'addData/' + model, {});
        },
        updData: function (model, data) {
            return r_data.customPOST(data, 'updData/' + model, {});
        },
        rmvData: function (model, data) {
            return r_data.customPOST(data, 'rmvData/' + model, {});
        },
    }
}]);
app.factory('CategoryRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/category');
    });
});
app.factory('api_category', ['CategoryRestangular', function (CategoryRestangular) {
    var r_config = CategoryRestangular.all("config");
    var cateService = CategoryRestangular.all("");

    return {
        // 获取院区权限
        getOwnBranch: function (data) {
            return cateService.customPOST(data, 'getOwnBranch', {})
        },
        // 获取责任科室权限
        getOwnDuty: function (data) {
            return cateService.customPOST(data, 'getOwnDuty', {})
        },
        // 向下复制分配方式
        copyCategoryConfig: function (data) {
            return cateService.customPOST(data, 'copyCategoryConfig', {})
        },
        branchDutyList: function (data) {
            return r_config.customPOST(data, 'branchDutyList', {});
        },
    }
}]);
app.factory('api_statistic', ['BpmRestangular', function (BpmRestangular) {
    var statistic = BpmRestangular.all("statistic");
    var table = BpmRestangular.all("data");

    return {
        query: function (data, rptId) {
            return statistic.customPOST(data, 'unidimensional/' + rptId, {});
        },
        // exportData: function(reportView, uuid, reportfileName){
        //     return  reportService.one('query/rest/export/xls/?exportname='+reportfileName+'xls');

        // }
        getTask: function (userid, idx, sum) {
            return table.customGET('getTask/' + userid + '/' + idx + '/' + sum);
        },
        unidimensionalExport: function (rptId) {
            return statistic.one('unidimensionalExport/' + rptId);
        },
        tableData: function (data, rptId) {
            return table.customPOST(data, 'fetchDataList/' + rptId, {});
        }
    }

}]);
app.factory('api_bpm', ['BpmRestangular', function (BpmRestangular) {
    var process = BpmRestangular.all("process");
    var postfix = BpmRestangular.all("bpm");
    var getData = BpmRestangular.all('data');
    var InspectionProcessActual = BpmRestangular.all('InspectionProcessActual');
    return {
        //巡检列表批量指派
        assign: function (data) {
            return InspectionProcessActual.customPOST(data, 'batchAssign', {});
        },
        //获取巡检报告
        report: function (data) {
            return InspectionProcessActual.customPOST(data, 'report', {});
        },
        deploy: function (data) {
            return process.customPOST(data, 're/model/deploy', {});
        },
        list: function () {
            return process.customGET('re/model/list');
        },
        modelsource: function (pdId) {
            return process.customGET('re/model/' + pdId + '/source');
        },
        // savemodel: function(pdId, data) {
        //     return process.customPOST(data, 're/model/' + pdId + '/save', {});
        // },
        savemodel: function (pdId, data) {
            return process.customPOST(data, 'saveModel/' + pdId, {});
        },
        removemodel: function (modelId) {
            return process.customGET('re/model/' + modelId + '/remove');
        },
        upgrade: function (data, taskId, userId, model) {
            return postfix.customPOST(data, model + '/' + taskId + '/' + userId, {});

            // return postfix.customPOST(id);
        },
        fetchDataList: function (model, data) {
            return getData.customPOST(data, 'fetchDataList/' + model, {});
        },
        addData: function (model, data) {
            return getData.customPOST(data, 'addData/' + model, {});
        },
        updData: function (model, data) {
            return getData.customPOST(data, 'updData/' + model, {});
        },
        //判断故障现象层级
        tellCategory: function (id) {
            return getData.customGET('tellCategory' + '/' + id);
        },
        //知识库导出
        downDataModel: function (type,month) {
            return getData.one('downDataModel/' + type + '/' + month);
        }

    };
}]);
app.factory('CommonRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/common');
    });
});

app.factory('api_bpm_domain', ['BpmRestangular', 'CommonRestangular', function (BpmRestangular, CommonRestangular) {
    var bpmService = BpmRestangular.all("bpm");
    var dataService = BpmRestangular.all("data");
    var commonService = CommonRestangular.all("common");
    return {
        //设置责任科室
        changeIncidentDuty: function (data) {
            return dataService.customPOST(data, 'changeIncidentDuty', {});
        },
        //清除缓存
        refreshCache: function (data) {
            return commonService.customPOST(data, 'refreshCache', {});
        },
        //指派
        delegateTask: function (pdKey, data) {
            return bpmService.customPOST(data, 'delegateTask/' + pdKey, {});
        },
        //指派2
        delegateTask2: function (data) {
            return bpmService.customPOST(data, 'delegateTask2', {});
        },
        fetchtask: function (pdKey, data) {
            return bpmService.customPOST(data, 'fetchTask/' + pdKey, {});
        },
        start: function (pdKey, data) {
            return bpmService.customPOST(data, 'start/' + pdKey, {});
        },
        flowTracing: function (processInstanceId, data) {
            return bpmService.customPOST(data, 'flowTracing/' + processInstanceId, {});
        },
        flowTracingCustom: function (processInstanceId, data) {
            return bpmService.customPOST(data, 'flowTracingCustom/' + processInstanceId, {});
        },
        complete: function (taskId, userId, data) {
            return bpmService.customPOST(data, 'completeTask/' + taskId + '/' + userId, {});
        },
        completeUpgrade: function (data) {
            return bpmService.customPOST(data, 'upgradeIncident', {});
        },
        save: function (taskId, data) {
            return bpmService.customPOST(data, 'saveTaskVar/' + taskId, {});
        },
        claimtask: function (taskId, data) {
            return bpmService.customPOST(data, 'claimTask/' + taskId, {});
        },
        claimAndCompletedTask: function (taskId, data) {
            return bpmService.customPOST(data, 'claimAndCompletedTask/' + taskId, {});
        },
        delegateTask: function (taskId, data) {
            return bpmService.customPOST(data, 'delegateTask/' + taskId, {});
        },
        expectedTime: function (taskId) {
            return bpmService.customGET('expectedTime/' + taskId);
        },
        history: function (processId) {
            return bpmService.customGET('history/' + processId);
        },
        // upgrade: function(processInstanceId, taskId, data) {
        //     return bpmService.customPOST(data, 'upgradeIncident/' + processInstanceId + '/' + taskId, {});
        // },
        listAttachments: function (processId, data) {
            return commonService.customGET('listAttachment/incident/' + processId, {});
        },
        listAttachment: function (modal, processId) {
            return commonService.customGET('listAttachment/' + modal + '/' + processId);
        },
        saveAttachments: function (processId, taskId, userId, data) {
            return bpmService.one('saveAttachments/' + processId + '/' + taskId + '/' + userId);
        },
        uploadAttachment: function (processId, taskId, userId, data) {
            return commonService.one('uploadAttachment/' + 'incident/' + processId);
        },
        uploadAttachmentJryModel: function (model, processId, taskId, userId, data) {
            return commonService.one('uploadAttachment/' + model + '/' + processId);
        },
        download: function (attachmentId) {
            return bpmService.one('getAttachmentContent/' + attachmentId);
        },
        // download: function(attachmentId){
        //   return bpmService.customGET('getAttachmentContent/' + attachmentId,{},{'responseType':'arraybuffer'});
        // },
        attachmentsPreviewUrl: function (attachmentId) {
            return bpmService.customGET('attachmentsPreviewUrl/' + attachmentId);
        },
        startformkey: function (pdKey) {
            return bpmService.customGET('startformkey/' + pdKey);
        },
        taskformkey: function (taskId) {
            return bpmService.customGET('taskformkey/' + taskId);
        },
        workernumber: function (type) {
            return bpmService.customGET('restful/' + type);
        },
        getWatchAreaPosition: function (data) {
            return bpmService.customGET('getWatchAreaPosition');
        },
        getWatchAreaData: function (id) {
            return bpmService.customGET('getWatchAreaData/' + id);
        },
        // 业务系统附件上传
        upload: function (type, processId) {
            return commonService.one(type + processId);
        },
    };
}]);
app.factory('api_bpm_domain1', ['BpmRestangular', 'CommonRestangular', function (BpmRestangular, CommonRestangular) {
    var bpmService = BpmRestangular.all("bpm");
    var commonService = CommonRestangular.all("common");
    return {
        //指派
        delegateTask: function (pdKey, data) {
            return bpmService.customPOST(data, 'delegateTask/' + pdKey, {});
        },
        fetchtask: function (pdKey, data) {
            return bpmService.customPOST(data, 'fetchTask/' + pdKey, {});
        },
        start: function (pdKey, data) {
            return bpmService.customPOST(data, 'start/' + pdKey, {});
        },
        flowTracing: function (processInstanceId, data) {
            return bpmService.customPOST(data, 'flowTracing/' + processInstanceId, {});
        },
        flowTracingCustom: function (processInstanceId, data) {
            return bpmService.customPOST(data, 'flowTracingCustom/' + processInstanceId, {});
        },
        complete: function (taskId, userId, data) {
            return bpmService.customPOST(data, 'completeTask/' + taskId + '/' + userId, {});
        },
        completeUpgrade: function (data) {
            return bpmService.customPOST(data, 'upgradeIncident', {});
        },
        save: function (taskId, data) {
            return bpmService.customPOST(data, 'saveTaskVar/' + taskId, {});
        },
        claimtask: function (taskId, data) {
            return bpmService.customPOST(data, 'claimTask/' + taskId, {});
        },
        claimAndCompletedTask: function (taskId, data) {
            return bpmService.customPOST(data, 'claimAndCompletedTask/' + taskId, {});
        },
        delegateTask: function (taskId, data) {
            return bpmService.customPOST(data, 'delegateTask/' + taskId, {});
        },
        expectedTime: function (taskId) {
            return bpmService.customGET('expectedTime/' + taskId);
        },
        history: function (processId) {
            return bpmService.customGET('history/' + processId);
        },
        // upgrade: function(processInstanceId, taskId, data) {
        //     return bpmService.customPOST(data, 'upgradeIncident/' + processInstanceId + '/' + taskId, {});
        // },
        listAttachments: function (processId, data) {
            return commonService.customGET('listAttachment/inspection/' + processId, {});
        },
        listAttachment: function (modal, processId) {
            return commonService.customGET('listAttachment/' + modal + '/' + processId);
        },
        saveAttachments: function (processId, taskId, userId, data) {
            return bpmService.one('saveAttachments/' + processId + '/' + taskId + '/' + userId);
        },
        uploadAttachment: function (processId, taskId, userId, data) {
            return commonService.one('uploadAttachment/' + 'inspection/' + processId);
        },
        uploadAttachmentJryModel: function (model, processId, taskId, userId, data) {
            return commonService.one('uploadAttachment/' + model + '/' + processId);
        },
        download: function (attachmentId) {
            return bpmService.one('getAttachmentContent/' + attachmentId);
        },
        // download: function(attachmentId){
        //   return bpmService.customGET('getAttachmentContent/' + attachmentId,{},{'responseType':'arraybuffer'});
        // },
        attachmentsPreviewUrl: function (attachmentId) {
            return bpmService.customGET('attachmentsPreviewUrl/' + attachmentId);
        },
        startformkey: function (pdKey) {
            return bpmService.customGET('startformkey/' + pdKey);
        },
        taskformkey: function (taskId) {
            return bpmService.customGET('taskformkey/' + taskId);
        },
        workernumber: function (type) {
            return bpmService.customGET('restful/' + type);
        },
        getWatchAreaPosition: function (data) {
            return bpmService.customGET('getWatchAreaPosition');
        },
        getWatchAreaData: function (id) {
            return bpmService.customGET('getWatchAreaData/' + id);
        },
        // 业务系统附件上传
        upload: function (type, processId) {
            return commonService.one(type + processId);
        },
    };
}]);
// 事件富文本框上传
app.factory('api_common_incident', ['BpmRestangular', 'CommonRestangular', function (BpmRestangular, CommonRestangular) {
    var commonService = CommonRestangular.all("common");
    return {
        upload: function (processId) {
            return commonService.one('uploadAttachment/incident/' + processId);
        },
        uploadResponseUri: function () {
            return imgBaseUrl + '/';
        },
    }
}]);
app.factory('api_bpm_data', ['BpmRestangular', function (BpmRestangular) {
    var dataService = BpmRestangular.all("data");
    var serviceCatalogue = BpmRestangular.all("ServiceCatalogue");
    var inspectionProcessActual = BpmRestangular.all("InspectionProcessActual");
    var solutionService = BpmRestangular.all("solution");
    return {
        // 移除汇总单上的耗材
        removeHc: function (data) {
            return dataService.customPOST(data, 'addSummaryDoc', {});
        },
        //首页服务台统计
        serviceCount: function (data) {
            return dataService.customPOST(data, 'serviceCount', {});
        },
        //首页当前用户近15天工单量
        createIncidentCount: function (data) {
            return dataService.customPOST(data, 'createIncidentCount', {});
        },
        // 汇总单审核通过
        approved: function (data) {
            return dataService.customPOST(data, 'approved');
        },
        // 获取汇总单信息
        querySummaryDoc: function (data) {
            return dataService.customPOST(data, 'querySummaryDoc');
        },
        // 获取首页今日上班清空
        getManagerIndexInfo: function (data) {
            return dataService.customPOST(data, 'getManagerIndexInfo');
        },
        // 不受理数据请求 --jry
        notAcceptData: function (data) {
            return dataService.customPOST(data, 'updData/alarmIncident');
        },
        // 获取认证计费数据
        sumInfo: function (account) {
            return dataService.customPOST({}, 'sumInfo/'+account);
        },
        impFileData: function () {
            return dataService.one('/impFileData/bpm_scheduleorder');
        },
        importData: function () {
            return dataService.one('/impFileData');
        },
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchData: function (model, dataId) {
            return dataService.customGET('fetchData/' + model + '/' + dataId);
        },
        fetchServiceTasks: function (model, data) {
            if (!model) {
                model = "ALL"
            }
            return serviceCatalogue.customPOST(data, 'fetchServiceTasks/' + model, {});
        },
        fetchInspectServiceTasks: function (model, data) {
            if (!model) {
                model = "ALL"
            }
            return inspectionProcessActual.customPOST(data, 'fetchServiceTasks/' + model, {});
        },
        addData: function (model, data) {
            return dataService.customPOST(data, 'addData/' + model, {});
        },
        updData: function (model, data) {
            return dataService.customPOST(data, 'updData/' + model, {});
        },
        rmvData: function (model, data) {
            return dataService.customPOST(data, 'rmvData/' + model, {});
        },
        getCount: function (data) {
            return dataService.customPOST(data, 'getCount2', {});
        },
        downDataModel: function (type, month) {
            return dataService.one('downDataModel/' + type + '/' + month);
        },
        fetchDataByGroupId: function (data) {
            return dataService.customPOST(data, 'fetchDataByGroupId', {});
        },
        // downDataModel: function(type, month, data) {
        //     return dataService.customPOST(data, 'downDataModel/' + type + '/' + month, {}, { 'Accept': 'application/json, text/javascript, */*' });
        // }

    };
}]);

app.factory('api_bpm_schedule', ['BpmRestangular', function (BpmRestangular) {
    var dataService = BpmRestangular.all("data");
    return {
        //删除事件
        del: function (id) {
            return dataService.customPOST({}, 'deleteIncident/' + id, {});
        },
        getScheduleClass: function () {
            var data = {
                "idx": "0",
                "sum": "10"
            };
            return dataService.customPOST(data, 'fetchDataList/scheduleclass', {});
        },
        fetchList: function (startTime, endTime, userId, queryKey) {
            var scheduleOrder = {
                "scheduleorder": {
                    "startTime": startTime,
                    "endTime": endTime
                },
                "idx": "0",
                "sum": "1000"
            };
            if (userId) {
                scheduleOrder['scheduleorder']['user'] = userId;
            }
            if (queryKey) {
                scheduleOrder['scheduleorder']['description'] = queryKey;
            }
            return dataService.customPOST(scheduleOrder, 'fetchDataList/scheduleorder', {});
        },
        fetchData: function (dataId) {
            return dataService.customGET('fetchData/scheduleorder/' + dataId);
        },
        update: function (data) {
            return dataService.customPOST(data, 'updData/scheduleorder', {});
        },
        add: function (data) {
            return dataService.customPOST(data, 'addData/scheduleorder', {});
        },
        remove: function (data) {
            return dataService.customPOST(data, 'rmvData/scheduleorder', {});
        },
        fetchSchedule: function (userId, startTime, endTime) {
            var scheduleData = {
                "schedulewatch": {
                    "type": "1",
                    "user": {
                        "id": userId
                    },
                    "startTime": startTime,
                    "endTime": endTime
                },
                "idx": "0",
                "sum": "100"
            };
            return dataService.customPOST(scheduleData, 'fetchDataList/schedulewatch', {});
        },
        queryRecieveSwitch: function (userId) {
            var handleSwitch = {
                "schedulewatch": {
                    "type": "3",
                    "user": {
                        "id": userId
                    }
                },
                "idx": "0",
                "sum": "10"
            };
            return dataService.customPOST(handleSwitch, 'fetchDataList/schedulewatch', {});
        },
        queryHandleoutSwitch: function (userId) {
            var handleSwitch = {
                "schedulewatch": {
                    "type": "2",
                    "user": {
                        "id": userId
                    }
                },
                "idx": "0",
                "sum": "10"
            };
            return dataService.customPOST(handleSwitch, 'fetchDataList/schedulewatch', {});
        },
        handleSchedule: function (data) {
            return dataService.customPOST(data, 'updData/schedulewatch', {});
        },
        querySwitch: function (filterData) {
            var switchData = {
                "scheduleorder": {
                    "type": "4"
                },
                "idx": filterData.idx,
                "sum": filterData.sum
            };
            return dataService.customPOST(switchData, 'fetchDataList/scheduleorder', {});
        },
        query: function (filterData) {
            var switchData = {
                "scheduleorder": filterData.scheduleorder,
                "idx": filterData.idx,
                "sum": filterData.sum
            };
            return dataService.customPOST(switchData, 'fetchDataList/scheduleorder', {});
        }
    };
}]);

app.factory('SysinfoRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/sysinfo/');
    });
});

app.factory('api_sysinfo', ['SysinfoRestangular', function (SysinfoRestangular) {
    var dataService = SysinfoRestangular.all("data");
    return {
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        },
        addData: function (model, data) {
            return dataService.customPOST(data, 'addData/' + model, {});
        },
        getSerialnumber: function (type, model) {
            return dataService.customGET('getSerialnumber/' + type + '/' + model);
        }
    };
}]);
app.factory('ConfigureRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp);
    });
});

app.factory('api_configure_form', ['ConfigureRestangular', function (ConfigureRestangular) {
    var formService = ConfigureRestangular.all("form");
    // var formService = ConfigureRestangular.all("bpm/data");

    return {
        renderForm: function (formKey, userId, processInstanceId, id) {
            if (processInstanceId) {
                return formService.customGET('renderForm/' + formKey + "/" + processInstanceId + "/" + userId + "/" + id);
            } else {
                var ids = 0
                return formService.customGET('renderForm/' + formKey + "/000000/" + userId + "/" + ids);
            }
        },
        renderFormNoId: function (formKey, userId, processInstanceId) {
            return formService.customGET('renderForm/' + formKey + "/" + processInstanceId + "/" + userId);
        },
        renderList: function (formKey) {
            return formService.customGET('renderList/' + formKey);
        },
        renderTabForm: function (classify) {
            return formService.customGET('renderTabForm/' + classify);
        }
    };
}]);
// app.factory('ConfigureRestangular', function(Restangular) {
//     return Restangular.withConfig(function(RestangularConfigurer) {
//         RestangularConfigurer.setBaseUrl(serverIp + '/config/');
//     });
// });

app.factory('api_configure_data', ['ConfigureRestangular', function (ConfigureRestangular) {
    var dataService = ConfigureRestangular.all("data");
    return {
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        },
        linkConfigure: function (model, data) {
            return dataService.customPOST(data, 'linkConfigure/' + model, {});
        },
        fetchDataById: function (model, id) {
            return dataService.customGET('fetchData/' + id + '/' + model);
        },
        fetchData: function (model, data) {
            return dataService.customPOST(data, 'fetchData/' + model, {});
        },
        addData: function (model, data) {
            return dataService.customPOST(data, 'addData/' + model, {});
        },
        rmvData: function (model, data) {
            return dataService.customPOST(data, 'rmvData/' + model, {});
        },
        updData: function (model, data) {
            return dataService.customPOST(data, 'updData/' + model, {});
        },
        downModels: function (model, data) {
            return dataService.one(model);
        },
    };
}]);

//知识库新接口--jry
app.factory('ZSKXJKJRY', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/solution');
    });
});

app.factory('api_zsk', ['ZSKXJKJRY', function (ZSKXJKJRY) {
    //http://127.0.0.1:9004/services/ftpFile/monitor/bankTip/
    var dataList = ZSKXJKJRY.all("fetchDataList");
    var quote = ZSKXJKJRY.all('solutionQuote')
    return {
        jry_get_list: function (data, key) {
            return dataList.customPOST(data, key, {});
        },
        // 知识库分类模糊搜索(暂无,哈哈)
        searchSolutionType: function (data, key) {
            return dataList.customPOST(key, data, {});
        },
        jry_form_getType: function (data, key) {
            return dataList.customPOST({
                "idx": 0,
                "sum": 10000
            }, "solutionType", {});
        },
        solutionData: function (data, key) {
            return dataList.customPOST(data, key, {});
        },
        solutionQuote: function (id) {
            return quote.customGET(id)
        }

    };
}]);

app.factory('baseUrl', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/');
    });
});
app.factory('up_down_file', ['baseUrl', function (baseUrl) {
    var upDownFile = baseUrl.all("");
    return {
        //附件上传新接口
        listAttachment: function (upUrl, bindType, bindId) {
            return upDownFile.customGET(upUrl + '/' + bindType + '/' + bindId);
        },
        listAttachments: function (upUrl, bindType, bindId) {
            return upDownFile.customGET(upUrl + '/' + bindType + '/' + bindId);
        },
        saveAttachments: function (upUrl, bindType, bindId) {
            return upDownFile.one(upUrl + '/' + bindType + '/' + bindId);
        },
        downloadAttachment: function (upUrl, token) {
            return upDownFile.one(upUrl + '/' + token);
        },
        removeAttachment: function (upUrl, token) {
            return upDownFile.one(upUrl + '/' + token);
        }
    };
}]);

app.factory('SolutionRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        //RestangularConfigurer.setBaseUrl('http://168.166.203.41:9000/services');
        RestangularConfigurer.setBaseUrl(serverIp + '/solution');
    });
});
//知识库附件上传--jry
app.factory('Jry_SolutionRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        //RestangularConfigurer.setBaseUrl('http://168.166.203.41:9000/services');
        RestangularConfigurer.setBaseUrl(serverIp + '/common');
    });
});
app.factory('api_solution', ['SolutionRestangular', 'Jry_SolutionRestangular', function (SolutionRestangular, Jry_SolutionRestangular) {
    var solutionService = SolutionRestangular.all("solution");
    var jry_bj = SolutionRestangular.all("updData");
    var jry_rm = SolutionRestangular.all("rmvData");
    var jry_getLSJL = SolutionRestangular.all("fetchDataList");
    var jry_sj = SolutionRestangular.all("getVisionNumber");
    var jry_sjup = SolutionRestangular.all("");
    var jry_FJuploda = Jry_SolutionRestangular.all("common");
    var jry_solutionService = SolutionRestangular.all("addData");
    var data = SolutionRestangular.all("solutionData");
    var history = SolutionRestangular.all("solutionHistory");
    var review = SolutionRestangular.all("solution_review");
    var typeservice = SolutionRestangular.all("solutionType");
    var groupservice = SolutionRestangular.all("solutionGroup");

    return {
        findSolutionByKeys: function (data) {
            var key = data.key,
                status = data.status || 0,
                pageIndex = data.pageIndex || 0,
                pageSum = data.pageSum,
                treeIds = data.treeIds,
                userId = data.userId;
            if (angular.isUndefined(treeIds)) {
                return solutionService.customGET('findSolutionByKeys/' + key + '/' + status + '/' + pageIndex + '/' + pageSum + '/' + userId);
            } else {
                return solutionService.customGET('findSolutionByKeys/' + key + '/' + status + '/' + pageIndex + '/' + pageSum + '/' + treeIds + '/' + userId);
            }
        },
        // searcher: function(data){
        //   var queryBuilder=data.key,  indexname=data.treeIds, type=data.userId;
        //       return searchservice.customGET('searcher/' + queryBuilder + '/' +  indexname + '/' + type );
        // },
        addSolution: function () {
            return solutionService.one('add');
        },
        addFile: function (data) {
            return solutionService.customPOST(data, 'addSolution', {});
        },
        jry_addFile: function (data) {
            return jry_solutionService.customPOST(data, 'solution', {});
        },
        addData: function (model, data) {
            return jry_solutionService.customPOST(data, model, {});
        },
        addModel: function (type, data) {
            return solutionService.customPOST(data, 'addModel/' + type, {});
        },
        updModel: function (type, data) {
            return solutionService.customPOST(data, 'updModel/' + type, {});
        },
        rmModels: function (id, data) {
            return solutionService.customPOST(data, 'rmModels/' + id, {});
        },
        update: function () {
            return solutionService.one('update');
        },
        upload: function () {
            return solutionService.one('upload');
        },
        jry_upload: function (LCid) {
            return jry_FJuploda.one('uploadAttachment/solution/' + LCid);
        },
        jry_upload1: function (LCid) {
            return jry_FJuploda.one('uploadAttachment/knowledge/' + LCid);
        },
        uploadResponseUri: function () {
            return solutionService.one('/');
        },
        addNotFile: function (data) {
            return solutionService.customPOST(data, 'addNotFile', {});
        },
        // export: function(data) {
        //     return solutionService.customGET(data, 'export', {});
        // },
        export: function (data) {
            return solutionService.one('export');
        },
        updateNotFile: function (data) {
            return solutionService.customPOST(data, 'updateNotFile', {});
        },
        updateSolution: function (data) {
            return solutionService.customPOST(data, 'updateSolution', {});
        },
        jry_updateSolution: function (data) {
            return jry_bj.customPOST(data, 'solution', {});
        },
        updData: function (model, data) {
            return jry_bj.customPOST(data, model, {});
        },
        rmvData: function (model, data) {
            return jry_rm.customPOST(data, model, {});
        },
        jry_leveSolution: function (data) {
            return jry_sjup.customPOST(data, 'upgrade', {});
        },
        jry_leveVision: function (id) {
            return jry_sj.customGET(id);
        },
        jry_getHistory: function (data) {
            return jry_getLSJL.customPOST(data, 'solution', {});
        },
        wt_type: function (data) {
            return jry_getLSJL.customPOST(data, 'solutionType', {});
        },
        searchSolutionByKey: function (key, id) {
            return solutionService.customGET('searchSolutionByKey/' + key + '/' + id);
        },
        findSolutionById: function (id) {
            return solutionService.customGET('check/' + id);
        },
        findSolutions: function (id) {
            return solutionService.customGET('check2/' + id);
        },
        jry_fetchDataList: function (model, data) {
            return jry_sjup.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchDataList: function (model, data) {
            return solutionService.customPOST(data, 'fetchDataList/' + model, {});
        },
        findSolutionDataByDateById: function (ndate, sid) {
            return data.customGET('findSolutionDataByDateById/' + ndate + '/' + sid);
        },
        findSolutionTypeActions: function (userId) {
            return typeservice.customGET('findSolutionTypeActions/' + userId);
        },
        findSolutionTypesUser: function (data) {
            return typeservice.customPOST(data, 'findSolutionTypesUser', {});
        },
        addTypeUserAll: function (data) {
            return typeservice.customPOST(data, 'addTypeUserAll', {});
        },
        hotRanking: function (num) {
            return solutionService.customGET('hotRanking/' + num);
        },
        scoreRanking: function (num) {
            return solutionService.customGET('scoreRanking/' + num);
        },
        fetchBBSSolutions: function (pageIndex, pageSum, sequence, userId) {
            return solutionService.customGET('communicationSolutions/' + pageIndex + '/' + pageSum + '/' + sequence + '/' + userId);
        },
        queryBBSSolutions: function (pageIndex, pageSum, sequence, userId, key) {
            return solutionService.customGET('communicationSolutions/' + pageIndex + '/' + pageSum + '/' + sequence + '/' + userId + '/' + key);
        },
        updateSolutionStatus: function (data) {
            return solutionService.customPOST(data, 'updateSolutionStatus', {});
        },
        getSolutionNumber: function () {
            return solutionService.customGET('getSolutionNumber');
        },
        addSolutionType: function (data) {
            return typeservice.customPOST(data, 'add', {});
        },
        updateSolutionType: function (data) {
            return typeservice.customPOST(data, 'update', {});
        },
        removeSolutionType: function (id) {
            return typeservice.customGET('delete/' + id);
        },
        getSolutionType: function (id) {
            return typeservice.customGET('' + id);
        },
        getTree: function (typeId, groupId, flag) {
            return typeservice.customGET('getTree/' + typeId + '/' + groupId + '/' + flag);
        },
        checkCommentScoreByUserIds: function (userId, id) {
            return review.customGET('findCommentScore/' + userId + '/' + id);
        },
        addSolutionReview: function (data) {
            return solutionService.customPOST(data, 'addScore', {});
        },
        findSolutionReviewById: function (userid, id, pageIndex, pageSum) {
            return solutionService.customGET('findSolutionReviewByType/' + userid + '/' + id + '/' + pageIndex + '/' + pageSum);
        },
        saveAllUserAuth: function (solutionId, flag) {
            return solutionService.customGET('saveAllUserTrees/' + solutionId + '/' + flag);
        },
        updatermvSolutionType: function (typeId, groupId, userIds, flag) {
            return typeservice.customGET('delOrUpdateTrees/' + typeId + '/' + groupId + '/' + userIds + '/' + flag);
        },
        findSolutionGroup: function (id) {
            return groupservice.customGET('findSolutionGroup/' + id);
        },
        saveSolutionGroup: function (id, data) {
            return groupservice.customPOST(data, 'saveSolutionGroup/' + id);
        },
        // getSolutionDowpath: function(id){
        //     return solutionService.one('download/'+id);
        // }
        getSolutionDowpath: function (attachmentId) {
            return solutionService.one('download/' + attachmentId + '/file');
        }
        // getSolutionDowpath: function(attachmentId){
        //   return solutionService.customGET('download/' + attachmentId);
        // }

    };
}]);
// 业务系统
app.factory('CMDBRestangular2', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/cmdb');
    });
});
// 业务系统
app.factory('api_cmdb2', ['CMDBRestangular2', function (CMDBRestangular) {
    var ywxtService = CMDBRestangular.all("operationSystem");
    var ywxtService1 = CMDBRestangular.all("");
    return {
        // 获取绑定到事件上的耗材
        getHc:function(sourceId){
            return ywxtService1.customPOST({
                data: { type: 2, source: "1627", sourceId: sourceId },
            }, 'storeList');
        },
        // 导入模板
        importDataTpl: function (type, data) {
            return ywxtService1.one(type, data, {});
        },
        // 列表数据
        fetchDataList: function (pdKey, data) {
            return ywxtService.customPOST(data, 'fetchDataList/' + pdKey, {})
        },
        // 列表数据
        fetchDataList1: function (pdKey, data) {
            return ywxtService1.customPOST(data, 'fetchDataList/' + pdKey, {})
        },
        // 管理单位
        management_unit: function () {
            return ywxtService.customGET('queryManagementUnit', {});
        },
        // 新增
        add_preservation: function (til, data) {
            return ywxtService.customPOST(data, 'addModel/' + til, {})
        },
        // 新增
        add_preservation1: function (til, data) {
            return ywxtService1.customPOST(data, 'addData/' + til, {})
        },
        // 删除
        remov: function (til, data) {
            return ywxtService.customPOST(data, 'rmModels/' + til, {})
        },
        // 删除
        remov1: function (til, data) {
            return ywxtService1.customPOST(data, 'rmModels/' + til, {})
        },
        // 导出数据
        exportData: function (type, data) {
            return ywxtService.one(type, data, {});
        },
        // 导出数据
        exportData1: function (type, data) {
            return ywxtService1.one(type, data, {});
        },
        // 编辑
        edit_preservation: function (til, data) {
            return ywxtService.customPOST(data, 'updModel/' + til, {})
        },
        // 编辑
        edit_preservation1: function (til, data) {
            return ywxtService1.customPOST(data, 'updData/' + til, {})
        },
        // 修改管理单位
        upd_preservation: function (til, data) {
            return ywxtService1.customPOST(data, 'updData/' + til, {})
        },
        // 删除管理单位
        del_preservation: function (til, data) {
            return ywxtService.customPOST(data, 'rmModels/' + til, {})
        },
    }
}]);
// 耗材
app.factory('CMDBRestangular3', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/bpm');
    });
});
// 耗材
app.factory('api_cmdb3', ['CMDBRestangular3', function (CMDBRestangular) {
    var hcService = CMDBRestangular.all("data");
    return {
        // 列表数据
        fetchDataList: function (pdKey, data) {
            return hcService.customPOST(data, 'fetchDataList/' + pdKey, {})
        },
        //编辑保存
        preservation: function (pdKey, data) {
            return hcService.customPOST(data, 'updData/' + pdKey, {})
        },
        //新增
        addData: function (pdKey, data) {
            return hcService.customPOST(data, 'addData/' + pdKey, {})
        },
        // 导出数据
        exportData: function (type, data) {
            return hcService.one(type, data, {});
        },
        // 关联流程
        relation: function (pdKey, data) {
            return hcService.customPOST(data, 'getListBySign/' + pdKey, {})
        }
    }
}]);
// 耗材查询分类
app.factory('CMDBRestangular4', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/common');
    });
})
// 耗材查询分类
app.factory('api_cmdb4', ['CMDBRestangular4', function (CMDBRestangular) {
    var hcService = CMDBRestangular.all("common");
    return {
        // 耗材查询分类
        fetchDataList: function (data) {
            return hcService.customPOST(data, 'getDictionary', {})
        },
        // 耗材分类新增
        addDictionary: function (data) {
            return hcService.customPOST(data, 'addDictionary', {})
        },
        // 耗材分类删除修改
        upDictionary: function (data) {
            return hcService.customPOST(data, 'upDictionary', {})
        },
    }
}]);
app.factory('CMDBRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/cmdb/');
    });
});

app.factory('api_cmdb', ['CMDBRestangular', function (CMDBRestangular) {
    var ciService = CMDBRestangular.all("ci");
    var uuidService = CMDBRestangular.all("uuid");
    var edgeService = CMDBRestangular.all("edge");
    var traversal = CMDBRestangular.all("traversal");
    var downloadService = CMDBRestangular.all("download");
    var exportService = CMDBRestangular.all("export");
    var importService = CMDBRestangular.all("import");
    var exportModelService = CMDBRestangular.all("exportModel");
    var importDataService = CMDBRestangular.all("importData");
    var exportDataService = CMDBRestangular.all("exportData");
    var searchService = CMDBRestangular.all("search");

    function serializeData(data) {
        // If this is not an object, defer to native stringification.
        if (!angular.isObject(data)) {
            return ((data == null) ? "" : data.toString());
        }

        var buffer = [];

        // Serialize each key in the object.
        for (var name in data) {
            if (!data.hasOwnProperty(name)) {
                continue;
            }

            var value = data[name];

            buffer.push(
                encodeURIComponent(name) + "=" + encodeURIComponent((value == null) ? "" : value)
            );
        }

        // Serialize the buffer and clean it up for transportation.
        var source = buffer.join("&").replace(/%20/g, "+");
        return (source);
    }

    return {
        create: function (data) {
            return ciService.customPOST(data, '', {});
        },
        importData: function () {
            return importDataService.one('/nodes');
        },
        put: function (data, id) {
            return ciService.customPUT(data, id, {});
        },
        remove: function (id) {
            return ciService.customDELETE(id);
        },
        removeByUUId: function (uuid) {
            return ciService.customDELETE('uuid/' + id, {}, {
                'Content-Type': 'application/json'
            });
        },
        removeRefById: function (id) {
            return ciService.customDELETE(id + '/ref');
        },
        find: function (id) {
            return ciService.customGET(id);
        },
        searchkey: function (type, key, idx, sum) {
            return searchService.customGET(type + '/' + key + '/' + idx + '/' + sum);
        },
        findByUUId: function (uuid) {
            return ciService.customGET('?uuid=' + uuid);
        },
        query: function (data) {
            return ciService.customGET('query', data);
        },
        findRefById: function (id) {
            return ciService.customGET(id + '/refs');
        },
        finduuid: function (type, model) {
            return uuidService.customGET(type + '/' + model);
        },
        types: function () {
            return CMDBRestangular.customGET('types');
        },
        createRef: function (data) {
            return edgeService.customPOST(data, '', {});
        },
        putRef: function (data, id) {
            return edgeService.customPUT(data, '' + id, {});
        },
        removeRef: function (id) {
            return edgeService.customDELETE(id, {}, {
                'Content-Type': 'application/json'
            });
        },
        traversal: function (uuid) {
            return traversal.customGET(uuid);
        },
        traversalRel: function (uuid, relation) {
            return traversal.customGET(uuid + '/' + relation + '/' + 'none');
        },
        export: function (label) {
            return exportService.customGET('nodes/' + label);
        },
        import: function () {
            return importService.one('/nodes');
        },
        download: function (label) {
            return downloadService.one('/label');
        },
        exportData: function (type, model) {
            return exportDataService.one(model + '/' + type);
        },
        downModels: function (type, model) {
            return exportModelService.one(model + '/' + type);
        }
    };
}]);
app.factory('CMDBNEWRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/cmdb/');
    });
});

app.factory('api_cmdb_new', ['CMDBNEWRestangular', function (CMDBNEWRestangular) {
    var assetService = CMDBNEWRestangular.all("asset");
    var operationSystemService = CMDBNEWRestangular.all('operationSystem')
    return {
        checkFile: function (model) {
            return assetService.one('/checkFile/' + model);
        },
        getApplicationId: function (type) {
            return assetService.customGET('getApplicationId/' + type);
        },
        fetchDataList: function (model, data) {
            return operationSystemService.customPOST(data, 'fetchDataList/' + model, {});
        },
        fetchDataList: function (model, data) {
            return operationSystemService.customPOST(data, 'fetchDataList/' + model, {});
        }
    }
}]);

app.factory('MonitorRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + ':9004/services');
    });
});

app.factory('api_monitor', ['MonitorRestangular', function (MonitorRestangular) {
    //http://127.0.0.1:9004/services/ftpFile/monitor/bankTip/
    var process = MonitorRestangular.all("ftpFile/monitor");
    return {
        bankTip: function (id) {
            return process.customGET('bankTip/' + id);
        },
        list: function () {
            return process.customGET('list/1000');
        },
        devList: function (id) {
            return process.customGET('devList/' + id);
        },
        cpuList: function () {
            return process.customGET('cpuList/10');
        },
        memList: function () {
            return process.customGET('memList/10');
        },
        storageList: function () {
            return process.customGET('storageList/10');
        },
        transData: function () {
            return process.customGET('transData/5');
        },
        banklist: function () {
            return process.customGET('banklist');
        },
        app: function (id) {
            return process.customGET('app/' + id);
        },
        beita: function (id) {
            return process.customGET('beita/' + id);
        },
        gongji: function (id) {
            return process.customGET('gongji/' + id);
        }

    };
}]);
/**
 * 报表
 */
app.factory('NxreportRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp);
    });
});
app.factory('api_report_nx', ['NxreportRestangular', 'Restangular', function (NxreportRestangular, Restangular) {
    var reportService = NxreportRestangular.all("reportPoc");
    return {
        fetchDataList: function (model, data) { //故障现象
            return reportService.customPOST(data, 'fetchDataList/' + model, {})
        },
        // getPdf: function(data) { //故障现象
        //     return reportService.customPOST(data, 'getPdf', {})
        // },
        getPdf: function (model) {
            // return reportService.one('getPdf', {});
            return reportService.one('getPdf', model, {});
        },
    };
}]);

// app.factory('NxreportRestangular', function(Restangular) {
//     return Restangular.withConfig(function(RestangularConfigurer) {
//         RestangularConfigurer.setBaseUrl(serverIp);
//     });
// });
// app.factory('api_report_nx', ['NxreportRestangular', function(NxreportRestangular) {
//     var nxreport = NxreportRestangular.all("reportPoc");
//     return {
//         fetchDataList: function(data, rptId) {
//             return nxreport.customPOST(data, 'fetchDataList/incidentClassify', {});
//         }
//     }
// }]);
app.factory('ReportRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        //RestangularConfigurer.setBaseUrl('http://127.0.0.1:9005/api/cmdb/');
        RestangularConfigurer.setBaseUrl(reportIp + ':8080/saiku/rest');
        // RestangularConfigurer.setBaseUrl(serverIp + ':8888/saiku/rest');
        //saiku/rest/saiku/api/query/execute/
    });
});

app.factory('api_report', ['ReportRestangular', 'Restangular', function (MonitorRestangular, Restangular) {
    // var reportService = MonitorRestangular.all("saiku/api");
    var authService = MonitorRestangular.one("saiku/session");
    return {
        getLicenseKey: function () {
            // return Restangular.one('assets/').customGET('api/reportToken.js');
        },
        // auth: function(){
        //   return authService.customPOST('username=admin&password=admin&language=zh'
        //   ,'', {}, {'Content-Type': 'application/x-www-form-urlencoded'});
        // },
        // session: function(){
        //   return authService.customGET('');
        // },
        list: function () {
            return reportService.customGET('repository?type=saiku');
            /**
            /saiku/api/repository
            path: /homes/home:admin/itsm_reports
            */
        },
        getMdx: function (path, uuid) {
            var rdata = 'file=' + path + '&formatter=flattened&language=zh';
            return reportService.customPOST(rdata, 'query/' + uuid, {}, {
                'Content-Type': 'application/x-www-form-urlencoded'
            });
        },
        execute: function (data) {
            return reportService.customPOST(data, 'query/execute', {}, {
                'Accept': 'application/json, text/javascript, */*'
            });
        },
        exportData: function (reportView, uuid, reportfileName) {
            return reportService.one('query/rest/export/xls/?exportname=' + reportfileName + 'xls');

        }
    };
}]);



// 首页仪表盘
app.factory('ReportnewRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/report');
    });
})
// 首页仪表盘
app.factory('api_newreport', ['ReportnewRestangular', function (ReportnewRestangular) {
    var hcService = ReportnewRestangular.all("data");
    var indexService = ReportnewRestangular.all("index");
    return {
        // 事件解决率
        fetchDataList: function (model, data) {
            return hcService.customPOST(data, 'fetchDataList/' + model, {})
        },
        // 首页仪表盘
        addDictionary: function (data) {
            return hcService.customPOST(data, 'addDictionary', {})
        },
        // 首页仪表盘
        upDictionary: function (data) {
            return hcService.customPOST(data, 'upDictionary', {})
        },
        // 科室基础信息展示
        fetchDataListIndex: function (model, data) {
            return indexService.customPOST(data, 'fetchDataList/' + model, {})
        }
    }
}]);
// 月度任务导出
app.factory('TaskRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/');
        RestangularConfigurer.setBaseUrl(serverIp + '/task');
    });
});
app.factory('api_task_export', ['TaskRestangular', function (TaskRestangular) {
    var dataService = TaskRestangular.all("data");
    return {
        taskExport: function (model, dataId) {
            return dataService.one(model + '/' + dataId);
        },
        // 任务清单
        yearListSee: function (year, month) {
            return dataService.customGET('previewTask/' + year + '/' + month);
        },
        // 任务清单导出
        yearListExport: function (year, month) {
            return dataService.one('exportTask' + '/' + year + '/' + month);
        }
    };
}]);
// 文档管理接口
app.factory('DocRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/');
        RestangularConfigurer.setBaseUrl(serverIp + '/doc');
    });
});
app.factory('api_doc_data', ['DocRestangular', function (DocRestangular) {
    var dataService = DocRestangular.all("data");
    return {
        // 删除历史版本
        delileVersion: function (data) {
            return dataService.customPOST(data, 'delileVersion', {});
        },
        // 引入文件
        insertIndexFile: function (data) {
            return dataService.customPOST(data, 'insertIndexFile', {});
        },
        // 搜索统一接口
        selectContent: function (data) {
            return dataService.customPOST(data, 'selectContent', {});
        },
        // 文件历史读取
        fileVersion: function (data) {
            return dataService.customPOST(data, 'fileVersion', {});
        },
        // 文件下载
        download: function (data) {
            return dataService.one('downloadFile')
        },
        // 文件更新
        newDoc: function (fileId) {
            return dataService.one('updateFile')
        },
        // 文件导入
        uploadDoc: function (docId) {
            return dataService.one('importFile', docId)
        },
        // 文件导入附带上传者id
        jry_uploadDoc: function (docId, userId) {
            return dataService.one('importFile' + '/' + docId + '/' + userId)
        },
        //文件更换目录
        jry_filesChange: function (id, data) {
            return dataService.customPOST(data, 'refolder/' + id, {});
        },
        // 索引更换目录
        jry_indexesChange: function (oldId, newId, data) {
            return dataService.customPOST(data, 'refolder/' + oldId + '/' + newId, {});
        },
        fetchDataList: function (model, data) {
            return dataService.customPOST(data, 'fetchDataList/' + model, {});
        },
        data: function (model, data) {
            return dataService.customPOST(data, model, {});
        },
    };
}]);
// 消息通知管理
app.factory('notificationApi', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/bpm');
    });
});
app.factory('api_notification_data', ['notificationApi', function (notificationApi) {
    var dataService = notificationApi.all("data");
    return {
        // 获取消息通知列表
        fetchDataList: function (data) {
            return dataService.customPOST(data, 'fetchDataList/messageManager');
        },
        // 修改消息通知
        updData: function (data) {
            return dataService.customPOST(data, 'updData/messageManager');
        }
    };
}]);
// 事件报表-seimin
app.factory('eventFormApi', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/report');
    });
});
app.factory('api_event_form', ['eventFormApi', function (eventFormApi) {
    var dataService = eventFormApi.all("data");
    return {
        // 事件总数
        fetchSjzsList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_sum');
        },
        // 事件类型
        fetchSjlxList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_type');
        },
        // 事件类型-详情
        fetchSjlxDetail: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_type_details');
        },
        // 科室统计
        fetchKstjList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_dept');
        },
        // 处理人/组
        fetchClrzList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_handle');
        },
        // 三方公司
        fetchSfgsList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_company');
        },
        // 区域地点
        fetchQyddList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_area_place');
        },
        // 事件来源
        fetchSjlyList: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_repot_source');
        },
        // 查询事件总数(单个页面只有事件数量)
        getSjNum: function (data) {
            return dataService.customPOST(data, 'mdv2_incident_sum');
        },
        // 综合统计
        fetchZhtjList: function (data) {
            return dataService.customPOST(data, 'mdv2_service_repot_all');
        },
        // 电话统计
        fetchDhtjList: function (data) {
            return dataService.customPOST(data, 'mdv2_service_repot_phone');
        },
        // 微信/WEB统计
        fetchWebList: function (data) {
            return dataService.customPOST(data, 'mdv2_service_repot_wechat_web');
        },
        // 电话留言统计
        fetchDhlytjList: function (data) {
            return dataService.customPOST(data, 'mdv2_service_repot_msg');
        }
    };
}]);
// 服务台分析-seimin
app.factory('deckReportApi', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/report');
    });
});
app.factory('api_deck_report', ['deckReportApi', function (deckReportApi) {
    var dataService = deckReportApi.all("data");
    return {
        // 来电总数
        fetchLdzsNumList: function (data) {
            return dataService.customPOST(data, 'service_phone_total');
        },
    };
}]);
// 登录后判断版本-seimin
app.factory('isCategoryApi', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/sysinfo');
    });
});
app.factory('api_is_category', ['isCategoryApi', function (isCategoryApi) {
    var dataService = isCategoryApi.all("data");
    return {
        //判断处理人、处理科室seimin
        isCategory: function (data) {
            return dataService.customPOST(data, 'fetchDataList/systemConfiguration');
        }
    };
}]);
// 搜索科室列表-seimin
app.factory('searchKs', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/user');
    });
});
app.factory('api_search_ks', ['searchKs', function (searchKs) {
    var dataService = searchKs.all("data");
    return {
        //获取科室列表
        getKsList: function (data) {
            return dataService.customPOST(data, 'fetchDataList/department');
        }
    };
}]);
// 搜索故障地点seimin
app.factory('searchArea', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/apply');
    });
});
app.factory('api_search_area', ['searchArea', function (searchArea) {
    var dataService = searchArea.all("bpm");
    return {
        //获取故障地点
        getAreaList: function (data) {
            return dataService.customPOST(data, 'searchFaultLocation');
        }
    };
}]);
// 微信配置查询接口seimin
app.factory('wechatConfig', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/wechat');
    });
});
app.factory('api_wechat_operate', ['wechatConfig', function (wechatConfig) {
    var dataService = wechatConfig.all("data");
    return {
        //获取微信配置信息
        getWechatList: function (data) {
            return dataService.customPOST(data, 'fetchDataList/wechatConfig');
        },
        //修改微信配置
        postWxList: function (data) {
            return dataService.customPOST(data, 'addData/wechatConfig');
        }
    };
}]);
// 微信配置获取角色seimin
app.factory('wxRole', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/user');
    });
});
app.factory('api_wx_role', ['wxRole', function (wxRole) {
    var dataService = wxRole.all("data");
    return {
        //获取微信配置获取角色
        getWxRole: function (data) {
            return dataService.customPOST(data, 'fetchDataList/role');
        }
    };
}]);
// CMDB打印
app.factory('cmdbPrit', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setBaseUrl(serverIp + '/cmdb');
    });
});
app.factory('api_cmdb_print', ['cmdbPrit', function (cmdbPrit) {
    var dataService = cmdbPrit.all("ci");
    return {
        //CMDB打印
        getCmdbPrit: function (data) {
            return dataService.customGET('qrcode/' + data);
        }
    };
}]);