486 lines
18 KiB
JavaScript
486 lines
18 KiB
JavaScript
/**
|
||
* 设备抄表
|
||
* Version: 3.8.30
|
||
* Author: zdc/kang
|
||
* Date: 2022/8/17
|
||
*/
|
||
angular.module('nurseApp').controller('inspectionCtrl',['$scope','$rootScope','$modal','$q','balert','bconfirm','inspectionSevice','equipmentService',
|
||
function($scope,$rootScope,$modal,$q,balert,bconfirm,inspectionSevice,equipmentService){
|
||
|
||
$scope.allInspectionSignalList = []
|
||
$scope.inspectionSelect = {
|
||
equipmentID:'',
|
||
allSelected:false,
|
||
signals:[]
|
||
}
|
||
var regularPushPatrolConfig = {
|
||
InspectionId:0,//定时邮件推送巡检Id 拿不到数据就给0
|
||
TimingStatus:0,//定时状态 0关,1开
|
||
TimingPeriod:30,//定时任务执行秒数
|
||
TimingDelay:30,//定时任务延迟执行秒数
|
||
EmployeeId:"",//人员表ID
|
||
SendNameMail:"",//发送者邮件
|
||
MailPwd:"",//发送者邮件密码
|
||
SMTPService:"",//SMTP服务
|
||
MailPort:"465",//邮件端口
|
||
MailTitle:"Title",//邮件标题
|
||
SendName:"Admin",//发送者名称
|
||
Auth:true,//是否验证默认已验证
|
||
SSL:true//是否SLL认证默认已认证
|
||
}
|
||
$scope.timingStatus = $scope.languageJson.inspection.Close //定时状态
|
||
|
||
//获取所有巡检配置
|
||
inspectionSevice.getEquipmentInspectionSignalList().then(function(data){
|
||
if(data){
|
||
$scope.allInspectionSignalList = data
|
||
$scope.tableParams.onChange('',undefined)
|
||
}
|
||
})
|
||
|
||
//获取邮件推送设置
|
||
inspectionSevice.getRegularPushPatrol().then(function(data){
|
||
if(data){
|
||
regularPushPatrolConfig = data
|
||
$scope.timingStatus = regularPushPatrolConfig.TimingStatus == 0 ? $scope.languageJson.inspection.Close : $scope.languageJson.inspection.Open
|
||
}
|
||
})
|
||
|
||
function getAllEquipment(){
|
||
var allEquipment = []
|
||
var deferred = $q.defer();
|
||
equipmentService.getAllEquipment().then(function (data) {
|
||
if(data){
|
||
data.forEach(function(item){
|
||
allEquipment.push({
|
||
id:item.EquipmentId,
|
||
name:item.EquipmentName
|
||
})
|
||
})
|
||
deferred.resolve(allEquipment)
|
||
}
|
||
});
|
||
return deferred.promise;
|
||
}
|
||
|
||
function getAllEquipmentDel(){
|
||
var allEquipment = []
|
||
var deferred = $q.defer();
|
||
inspectionSevice.getEquipmentList().then(function (data) {
|
||
if(data){
|
||
data.forEach(function(item){
|
||
allEquipment.push({
|
||
id:item.EquipmentId,
|
||
name:item.EquipmentName
|
||
})
|
||
})
|
||
deferred.resolve(allEquipment)
|
||
}
|
||
});
|
||
return deferred.promise;
|
||
}
|
||
|
||
/* 数组分页
|
||
pageNo 页码
|
||
pageSize 显示条数
|
||
array allArrlList
|
||
*/
|
||
function pagination(pageNo, pageSize, array) {
|
||
var offset = (pageNo - 1) * pageSize;
|
||
return (offset + pageSize >= array.length) ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize);
|
||
}
|
||
|
||
$scope.tableParams = {
|
||
currentPage: 1,//当前页面
|
||
itemsPerPage: 10,//显示条数
|
||
pagesLength: 10,
|
||
totalItems: 0,//总条数
|
||
hint: {
|
||
the: $scope.languageJson.Paging.The,
|
||
page: $scope.languageJson.Paging.Page,
|
||
articel: $scope.languageJson.Paging.Articel,
|
||
eachPage: $scope.languageJson.Paging.EachPage,
|
||
total: $scope.languageJson.Paging.Total,
|
||
noData: $scope.languageJson.Paging.NoData
|
||
},
|
||
list: [],
|
||
perPageOptions: [10, 20, 30, 40, 50],
|
||
onChange: function (newValue, oldValue) {
|
||
if (newValue == undefined) return;
|
||
$scope.loading = true;
|
||
var index = $scope.tableParams.currentPage;//当前页面
|
||
var size = $scope.tableParams.itemsPerPage;//显示条数
|
||
// var filterList = $filter('filter')(newValue,$scope.serch);//数据筛选
|
||
//分页
|
||
$scope.tableParams.list = pagination(index,size,$scope.allInspectionSignalList)
|
||
$scope.tableParams.totalItems = $scope.allInspectionSignalList.length
|
||
$rootScope.$emit('resultTotal', {});
|
||
$scope.loading = false;
|
||
}
|
||
};
|
||
|
||
$scope.getCheckState = function(state){
|
||
if(state){
|
||
if(state == 'checkHalf'){
|
||
return 'fa-check-square-o'
|
||
}else{
|
||
return 'fa-check-square'
|
||
}
|
||
}else{
|
||
return 'fa-square-o'
|
||
}
|
||
}
|
||
//全选
|
||
$scope.selectListAll = function(selectedArr){
|
||
selectedArr.allSelected = !selectedArr.allSelected
|
||
if(selectedArr.allSelected) {
|
||
selectedArr.signals.forEach(function (item) {
|
||
item.checked = true;
|
||
})
|
||
}else {
|
||
selectedArr.signals.forEach(function (item) {
|
||
item.checked = false;
|
||
})
|
||
}
|
||
}
|
||
//单选
|
||
$scope.selectListOne = function(selectedArr,row){
|
||
row.checked = !row.checked
|
||
var allCount = 0
|
||
selectedArr.signals.forEach(function(item){
|
||
if(item.checked){
|
||
allCount++
|
||
}
|
||
})
|
||
if(allCount == selectedArr.signals.length){
|
||
selectedArr.allSelected = true
|
||
}else{
|
||
if(allCount > 0){
|
||
selectedArr.allSelected = 'checkHalf'
|
||
}else{
|
||
selectedArr.allSelected = false
|
||
}
|
||
}
|
||
}
|
||
|
||
//添加巡检配置
|
||
var inspectionDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/inspectionDialog.html',
|
||
show: false
|
||
})
|
||
$scope.addInspectionParameter = function(){
|
||
$scope.inspectionSelect.allSelected = false
|
||
getAllEquipment().then(function(data){
|
||
if(data){
|
||
$scope.allEquipment = data
|
||
$scope.inspectionSelect.equipmentID = $scope.allEquipment[0].id
|
||
inspectionSevice.getSignalList($scope.inspectionSelect.equipmentID).then(function (data) {
|
||
if(data){
|
||
$scope.inspectionSelect.signals = data
|
||
inspectionDialog.$promise.then(inspectionDialog.show);
|
||
}
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
|
||
//切换设备
|
||
$scope.changeDevice = function(deviceId){
|
||
$scope.inspectionSelect.allSelected = false
|
||
inspectionSevice.getSignalList(deviceId).then(function (data) {
|
||
if(data){
|
||
$scope.inspectionSelect.signals = data
|
||
}
|
||
});
|
||
}
|
||
|
||
//保存巡检信号配置
|
||
$scope.saveInspectionConfig = function(){
|
||
if(!$scope.inspectionSelect.allSelected){
|
||
balert.show('danger', $scope.languageJson.inspection.Prompt.NoSignalList, 3000);//'请选择信号'
|
||
return
|
||
}
|
||
var req = {
|
||
"deviceId": $scope.inspectionSelect.equipmentID,
|
||
"BaseTypeId":""
|
||
}
|
||
$scope.inspectionSelect.signals.forEach(function(item){
|
||
if(item.checked){
|
||
req.BaseTypeId += item.BaseTypeId + ','
|
||
}
|
||
})
|
||
req.BaseTypeId = req.BaseTypeId.substring(0,req.BaseTypeId.lastIndexOf(','))
|
||
$scope.loading = true
|
||
inspectionSevice.addInspectionParameter(req).then(function(data){
|
||
if(data){
|
||
balert.show('success', $scope.languageJson.inspection.Prompt.AddSignalSuess, 3000);
|
||
inspectionSevice.getEquipmentInspectionSignalList().then(function(data){
|
||
if(data){
|
||
$scope.allInspectionSignalList = data
|
||
$scope.loading = false
|
||
$scope.tableParams.onChange('',undefined)
|
||
inspectionDialog.hide()
|
||
}
|
||
})
|
||
|
||
}
|
||
})
|
||
}
|
||
|
||
//删除巡检配置
|
||
$scope.removeInspection = function(InspectionConfig){
|
||
bconfirm.show($scope, $scope.languageJson.inspection.Prompt.DeleteConfirm).then(function (data) {
|
||
if(data){
|
||
$scope.loading = true
|
||
inspectionSevice.removeInspection(InspectionConfig.InspectionConfigId).then(function(data){
|
||
if(data == "OK"){
|
||
inspectionSevice.getEquipmentInspectionSignalList().then(function(data){
|
||
if(data){
|
||
$scope.allInspectionSignalList = data
|
||
$scope.tableParams.onChange('',undefined)
|
||
$scope.loading = false
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
|
||
//删除单个设备所有巡检配置 start.....
|
||
var inspectionDelDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/inspectionDelDialog.html',
|
||
show: false
|
||
})
|
||
|
||
$scope.delInspectionParameter = function() {
|
||
getAllEquipmentDel().then(function(data){
|
||
if(data){
|
||
$scope.allEquipment = data
|
||
$scope.inspectionSelect.equipmentID = $scope.allEquipment[0].id
|
||
inspectionSevice.getSignalList($scope.inspectionSelect.equipmentID).then(function (data) {
|
||
if(data){
|
||
$scope.inspectionSelect.signals = data
|
||
inspectionDelDialog.$promise.then(inspectionDelDialog.show);
|
||
}
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
$scope.removeEquipmentInspection = function(equipmentId){
|
||
bconfirm.show($scope, $scope.languageJson.inspection.Prompt.DeleteConfirm).then(function (data) {
|
||
if(data){
|
||
$scope.loading = true
|
||
inspectionSevice.removeEquipmentInspection(equipmentId).then(function(data){
|
||
if(data == "OK"){
|
||
inspectionSevice.getEquipmentInspectionSignalList().then(function(data){
|
||
if(data){
|
||
$scope.allInspectionSignalList = data
|
||
$scope.tableParams.onChange('',undefined);
|
||
$scope.loading = false;
|
||
inspectionDelDialog.hide();
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
//删除单个设备所有巡检配置 end.....
|
||
|
||
|
||
|
||
//邮件推送配置
|
||
var pushPatrolDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/pushPatrolDialog.html',
|
||
show: false
|
||
})
|
||
$scope.RegularPushPatrolConfig = function(){
|
||
$scope.EmployeeId = []
|
||
// $scope.regularPushPatrolConfig = angular.copy(regularPushPatrolConfig)
|
||
$scope.loading = true
|
||
inspectionSevice.getRegularPushPatrolEmployee().then(function(employees){
|
||
if(employees){
|
||
inspectionSevice.getRegularPushPatrol().then(function(data){
|
||
if(data){
|
||
$scope.regularPushPatrolConfig = data
|
||
parseMailDict(angular.fromJson(data.Regularly));
|
||
}else{
|
||
$scope.regularPushPatrolConfig = angular.copy(regularPushPatrolConfig)
|
||
}
|
||
|
||
if($scope.regularPushPatrolConfig.EmployeeId){
|
||
$scope.EmployeeId = $scope.regularPushPatrolConfig.EmployeeId.split(',')
|
||
}else{
|
||
$scope.EmployeeId = []
|
||
}
|
||
for (var i = 0; i < $scope.EmployeeId.length; i++) {
|
||
var Employee = _.findWhere(employees,{EmployeeId:$scope.EmployeeId[i]})
|
||
if(Employee){
|
||
$scope.EmployeeId[i] = Employee
|
||
}else{
|
||
$scope.EmployeeId[i] = {
|
||
Employeeid:$scope.EmployeeId[i],
|
||
EmployeeName:$scope.EmployeeId[i]
|
||
}
|
||
continue
|
||
}
|
||
}
|
||
$scope.loading = false
|
||
pushPatrolDialog.$promise.then(pushPatrolDialog.show);
|
||
})
|
||
}
|
||
})
|
||
}
|
||
$scope.mailTim = {
|
||
isMonth: false,
|
||
isWeek: false,
|
||
isTime: false
|
||
};
|
||
|
||
function parseMailDict(data) {
|
||
$scope.mailTim.type = data.Type;
|
||
$scope.mailTim.day = data.Data.day;
|
||
$scope.mailTim.week = data.Data.week;
|
||
$scope.mailTim.hour = data.Data.hour;
|
||
$scope.mailTim.minute = data.Data.minute;
|
||
|
||
$scope.changeMail(data.Type);
|
||
}
|
||
|
||
$scope.changeMail = function (type) {
|
||
$scope.mailTim.isTime = false;
|
||
$scope.mailTim.isMonth = false;
|
||
$scope.mailTim.isWeek = false;
|
||
|
||
if (type != 'all') {
|
||
$scope.mailTim.isTime = true;
|
||
}
|
||
if (type == 'month') {
|
||
$scope.mailTim.isMonth = true;
|
||
} else if (type == 'week') {
|
||
$scope.mailTim.isWeek = true;
|
||
}
|
||
};
|
||
|
||
//保存邮件推送配置
|
||
$scope.saveRegularPushPatrol = function(){
|
||
var req = $scope.regularPushPatrolConfig
|
||
var EmployeeId = ''
|
||
$scope.EmployeeId.forEach(function(item){
|
||
EmployeeId += item.EmployeeId + ','
|
||
})
|
||
req.EmployeeId = EmployeeId.substring(0,EmployeeId.lastIndexOf(','))
|
||
var danger = checkSaveRegularPushPatrolData(req)
|
||
if(danger){
|
||
balert.show('danger', danger, 3000);
|
||
return
|
||
}
|
||
if ($scope.mailTim.type != "all") {
|
||
if ($scope.mailTim.type == "month") {
|
||
if (($scope.mailTim.day == undefined || $scope.mailTim.day == "") ||
|
||
($scope.mailTim.day < 1 || $scope.mailTim.day > 31) || isNaN($scope.mailTim.day)) {
|
||
balert.show('danger', $scope.languageJson.AlarmNotice.EditorCtrl.Mailbox.Date, 3000);/*'日期不合法!'*/
|
||
return;
|
||
}
|
||
}
|
||
if ($scope.mailTim.type == "week") {
|
||
if (($scope.mailTim.week == undefined || $scope.mailTim.week == "") ||
|
||
($scope.mailTim.week < 1 || $scope.mailTim.week > 7) || isNaN($scope.mailTim.week)) {
|
||
balert.show('danger', $scope.languageJson.AlarmNotice.EditorCtrl.Mailbox.Legal, 3000);/*'星期数不合法!'*/
|
||
return;
|
||
}
|
||
}
|
||
var hour = parseInt($scope.mailTim.hour);
|
||
if (($scope.mailTim.hour == undefined || $scope.mailTim.hour == "") ||
|
||
(hour < 0 || hour > 23) || isNaN($scope.mailTim.hour)) {
|
||
balert.show('danger', $scope.languageJson.AlarmNotice.EditorCtrl.Mailbox.Hours, 3000);/*'小时数不合法!'*/
|
||
return;
|
||
}
|
||
var minute = parseInt($scope.mailTim.minute);
|
||
if (($scope.mailTim.minute == undefined || $scope.mailTim.minute == "") ||
|
||
(minute < 0 || minute > 59) || isNaN($scope.mailTim.minute)) {
|
||
balert.show('danger', $scope.languageJson.AlarmNotice.EditorCtrl.Mailbox.Minutes, 3000);/*'分钟数不合法!'*/
|
||
return;
|
||
}
|
||
}
|
||
$scope.loading = true
|
||
inspectionSevice.addUpdRegularPushPatrol($scope.mailTim,req).then(function(data){
|
||
if(data){
|
||
inspectionSevice.getRegularPushPatrol().then(function(dates){
|
||
$scope.loading = false
|
||
$scope.regularPushPatrolConfig = dates
|
||
$scope.timingStatus = dates.TimingStatus == 0 ? $scope.languageJson.inspection.Close : $scope.languageJson.inspection.Open
|
||
pushPatrolDialog.hide()
|
||
})
|
||
}
|
||
})
|
||
}
|
||
|
||
//发送巡检
|
||
$scope.emailPush = function(){
|
||
$scope.loading = true;
|
||
inspectionSevice.emailPush().then(function(data){
|
||
$scope.loading = false;
|
||
if (data){
|
||
balert.show('success',$scope.languageJson.inspection.sendInspectionSuccess, 3000);
|
||
}else {
|
||
balert.show('danger',$scope.languageJson.inspection.sendInspectionFail, 3000);
|
||
}
|
||
});
|
||
}
|
||
|
||
$scope.FaEye = "fa-eye-slash";
|
||
$scope.isShowPwd = function () {
|
||
if ($scope.FaEye == "fa-eye") {
|
||
$scope.FaEye = "fa-eye-slash";
|
||
$("#Pwd2").hide();
|
||
$("#Pwd1").show();
|
||
} else {
|
||
$scope.FaEye = "fa-eye";
|
||
$("#Pwd1").hide();
|
||
$("#Pwd2").show();
|
||
}
|
||
};
|
||
|
||
//邮件推送配置数据验证
|
||
function checkSaveRegularPushPatrolData(RegularPushPatrolConfig){
|
||
var result = ''
|
||
var prompt = $scope.languageJson.inspection.Prompt
|
||
if(RegularPushPatrolConfig.EmployeeId.length <= 0){
|
||
result = prompt.EmployeeIdErr
|
||
return result
|
||
}
|
||
if(!verifyEmail(RegularPushPatrolConfig.SendNameMail)){
|
||
result = $scope.languageJson.Person.ErrorMailbox
|
||
return result
|
||
}
|
||
if(RegularPushPatrolConfig.MailPwd.length <= 0){
|
||
result = prompt.EmailPassWordErr
|
||
return result
|
||
}
|
||
if(!parseInt(RegularPushPatrolConfig.MailPort)){
|
||
result = prompt.EmailPortErr
|
||
return result
|
||
}
|
||
if(RegularPushPatrolConfig.SMTPService.length <= 0){
|
||
result = prompt.EmailSmtpErr
|
||
return result
|
||
}
|
||
return result
|
||
}
|
||
|
||
//校验邮箱格式
|
||
function verifyEmail(email) {
|
||
if (email == undefined || email == "") return false;
|
||
|
||
var re = /\w+@[a-z0-9]+\.[a-z]{2,4}/;
|
||
return re.test(email);
|
||
};
|
||
|
||
}]) |