/** * 设备抄表 * 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); }; }])