define(["angularAMD"], function (angularAMD) { angularAMD.service('mrs08Service', ['$rootScope', '$filter', '$translate', 'config', 'MMWService', '$mdDialog', function($rootScope, $filter, $translate, config, $MMWService, $mdDialog){ /*** * options : { * plotItem : {} //製令 * feedback : function //結束後呼叫的方法 * close : function //關閉後呼叫的方法 * } */ this.init = function (options){ //開啟暫停畫面 function openDialog(plotItem){ $mdDialog.dialog('module/moduleWIP/program/mrs-eqp/mrs08/mrs08.html', function(dialog){ return { plotItem : plotItem, workStation : config.cache.workStation, pause_status : '2', remark:'', beforeShown:function(){ if($rootScope.platform != 'cordova') $rootScope.focusById('remark'); }, background: { click: function () { dialog.hide(); if (typeof (feedback) == 'function') feedback(); } }, barcodeScan : function(event){ //barcode example if(event == undefined || event.keyCode == 13){ var type, target = document.getElementById('remark'); if(config.cache.platform == 'SFT'){ //當條碼為以下三者之一時才能往下 if(dialog.remark.indexOf('ESC016') != -1){ type = '9'; //暫停/解除暫停 } if(!type){ dialog.remark = ''; // 清除錯誤的條碼 //條碼格式錯誤 $rootScope.showAlert($filter('translate')('common.msg.code_format_error'), function(){ dialog.remark = ''; dialog.description = ''; $rootScope.focusById('remark'); }); return; } else { dialog.remark = dialog.remark.substring(6,(dialog.remark.length)); } } else { type = 0; } getExceptionReason(dialog.remark, type,function(data){ //data = JSON.parse(data.Result); data = JSON.parse(data.ResultJson); //if(data.Result != 'fail' && data.RecordList.length > 0){ if (data.abnormal_no) { if (config.cache.platform == 'SFT') { dialog.remark = data.RecordList[0].holdreason_no; dialog.description = data.RecordList[0].holdreason_name; } else { //dialog.remark = data.RecordList[0].abnormal_no; //dialog.description = data.RecordList[0].abnormal_name; dialog.remark = data.abnormal_no; dialog.description = data.abnormal_name; } } else { $rootScope.showAlert($filter('translate')('mrs08.msg.cantGetErrCode') + dialog.remark + '
' + data.SysMsg, function () { dialog.remark = ''; dialog.description = ''; $rootScope.focusById('remark'); }); } }); } }, scanQrcode : function(){ $rootScope.OpenScanner({ after : function(result){ dialog.remark = result.text; dialog.barcodeScan(); }, exception: function(){ //目前裝置無法使用相機 $rootScope.showAlert($filter('translate')('common.msg.camera_not_support')); }, orientation : "landscape" }); }, search: function(){ var type; if(config.cache.platform == 'SFT'){ type = '9'; } else { type = 0; } getExceptionReason('', type,function(data){ //data = JSON.parse(data.Result); data = JSON.parse(data.ResultJson); //if (data.Result != 'fail' && data.RecordList.length > 0) { if (data.abnormal_no) { $rootScope.showSelect({ title : $filter('translate')('common.msg.plz_select'), label : config.cache.platform == 'SFT'?'holdreason_name':'abnormal_name', code : config.cache.platform == 'SFT'?'holdreason_no':'abnormal_no', order: config.cache.platform == 'SFT'?'holdreason_no':'abnormal_no', selectCode : '', //list : data.RecordList, confirm : function(s_item, s_dialog){ s_dialog.hide(); if(config.cache.platform == 'SFT'){ dialog.remark = s_item.holdreason_no; dialog.description = s_item.holdreason_name; } else { dialog.remark = s_item.abnormal_no; dialog.description = s_item.abnormal_name; } } }); } else { $rootScope.showAlert($filter('translate')('mrs08.msg.cantGetErrCode')+dialog.remark, function(){ dialog.remark = ''; dialog.description = ''; }); } }); }, back: function () { dialog.hide(); if(options.close) options.close(); }, confirm: function () { //if(dialog.description && dialog.description != ''){ var content = { change_control_mode :'1', status : dialog.pause_status, machine_no : config.cache.equipment, plot_no : dialog.plotItem.plot_no, op_seq : dialog.plotItem.sft_op_seq, op_no : dialog.plotItem.OpNo, workstation_no : config.cache.workStation, plot_stamp : dialog.plotItem.PlotStamp, description : dialog.description, remark : dialog.remark, lot_status : dialog.plotItem.lot_status }; //mantis#0041000: 生產批暫停類型新增機台暫停選項 if($rootScope.servicePlatform == 'SFT'){ content.status = '2'; } //console.log(content); plotWaitProcess(content, function(){ $rootScope.showAlert($filter('translate')('mrs08.msg.confirm_success'), function(){ dialog.hide(); if(options.feedback){ options.feedback(); } }); }); //} else { // $rootScope.showAlert($filter('translate')('mrs08.msg.emptyErrCode')); //} } } } ); } function getExceptionReason(Code, CheckType, callback){ var uri = '',content = {}; if(config.cache.platform == 'SFT'){ uri = 'app.holdreason.get'; content.holdreason_no = Code; content.holdreason_type = CheckType; content.Remark = ''; } else { uri = 'KMI.app_abnormal_get_json'; //content.Code = Code; //content.CheckType = CheckType; content.abnormal_no = Code; content.abnormal_type = CheckType; content.Remark = ''; } $MMWService.sendToEAISrv({ uri : uri, content : content, success : function(data){ if(callback) callback(data); } }); } function plotInfoGet(plotItem, callback){ var MoId = plotItem.plot_no + ';'; if(plotItem.sft_op_seq && plotItem.sft_op_no){ MoId += plotItem.sft_op_seq + ';' + plotItem.sft_op_no+';' } MoId = MoId + config.cache.workStation; $MMWService.sendToEAISrv({ uri: 'KMI.plot_info_get_json', content : { //MoId : MoId, machine_no : config.cache.equipment, op_no: config.cache.workStation, plot_no : plotItem.plot_no, return_type : '0' }, success : function(data){ //data = JSON.parse(data.Result); data = JSON.parse(data.ResultJson); if(data.Result != 'fail'){ console.log(data); data.plot_no = plotItem.plot_no; data.OpNo = config.cache.workStation; //data.sft_op_seq = data.OpSeq = plotItem.sft_op_seq; data.lot_status = plotItem.status; data.qty = plotItem.qty if(callback) callback(data); } else { $rootScope.showAlert(data.SysMsg, options.close); } } }); } function plotWaitProcess(content, callback){ $MMWService.sendToEAISrv({ uri: 'KMI.plot_wait_process_json', content : content, success : function(data){ data = JSON.parse(data.Result); if(data.Result != 'fail'){ console.log(data); if(callback) callback(); } else { $rootScope.showAlert(data.SysMsg); } } }); } plotInfoGet(options.plotItem, function(data){ openDialog(data); }); }; }]); });