224 lines
12 KiB
JavaScript
224 lines
12 KiB
JavaScript
define(["angularAMD"], function (angularAMD) {
|
|
angularAMD.service('mrs09Service', ['$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/mrs09/mrs09.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;
|
|
if(config.cache.platform == 'SFT'){
|
|
//當條碼為以下三者之一時才能往下
|
|
if(dialog.remark.indexOf('ESC016') != -1){
|
|
type = '10'; //暫停/解除暫停
|
|
}
|
|
|
|
if(!type){
|
|
//條碼格式錯誤
|
|
$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);
|
|
if(data.Result != 'fail' && data.RecordList.length > 0){
|
|
dialog.remark = data.RecordList[0].holdreason_no;
|
|
dialog.description = data.RecordList[0].holdreason_name;
|
|
} else {
|
|
$rootScope.showAlert($filter('translate')('mrs09.msg.cantGetErrCode')+dialog.remark, 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 = '10';
|
|
} else {
|
|
type = 0;
|
|
}
|
|
getExceptionReason(dialog.remark, type,function(data){
|
|
data = JSON.parse(data.Result);
|
|
if(data.Result != 'fail' && data.RecordList.length > 0){
|
|
$rootScope.showSelect({
|
|
title : $filter('translate')('common.msg.plz_select'),
|
|
label : 'holdreason_name',
|
|
code : 'holdreason_no',
|
|
order: 'holdreason_no',
|
|
selectCode : '',
|
|
list : data.RecordList,
|
|
confirm : function(s_item, s_dialog){
|
|
s_dialog.hide();
|
|
dialog.remark = s_item.holdreason_no;
|
|
dialog.description = s_item.holdreason_name;
|
|
$rootScope.focusById('remark');
|
|
}
|
|
});
|
|
} else {
|
|
$rootScope.showAlert($filter('translate')('mrs09.msg.cantGetErrCode')+dialog.remark, function(){
|
|
dialog.remark = '';
|
|
dialog.description = '';
|
|
$rootScope.focusById('remark');
|
|
});
|
|
}
|
|
});
|
|
},
|
|
back: function () {
|
|
dialog.hide();
|
|
if(options.close)
|
|
options.close();
|
|
},
|
|
confirm: function () {
|
|
var content = {
|
|
change_control_mode :'2',
|
|
status : dialog.pause_status,
|
|
machine_no : config.cache.equipment,
|
|
plot_no : dialog.plotItem.plot_no,
|
|
op_seq : dialog.plotItem.OpSeq,
|
|
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')('mrs09.msg.confirm_success'), function(){
|
|
dialog.hide();
|
|
if(options.feedback){
|
|
options.feedback();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function getExceptionReason(Code, CheckType, callback){
|
|
$MMWService.sendToWMMServer({
|
|
uri : 'app.holdreason.get',
|
|
content : {
|
|
holdreason_no:Code,
|
|
holdreason_type : CheckType,
|
|
Remark:''
|
|
},
|
|
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.sendToWMMServer({
|
|
uri : 'PlotInfo',
|
|
content : {
|
|
MoId : MoId,
|
|
ReturnType : '0'
|
|
},
|
|
success : function(data){
|
|
data = JSON.parse(data.Result);
|
|
if(data.Result != 'fail'){
|
|
console.log(data);
|
|
data.plot_no = plotItem.plot_no;
|
|
data.OpNo = plotItem.sft_op_no;
|
|
data.sft_op_seq = data.OpSeq = plotItem.sft_op_seq;
|
|
data.lot_status = plotItem.prev_status;
|
|
if(callback)
|
|
callback(data);
|
|
} else {
|
|
$rootScope.showAlert(data.SysMsg, options.close);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function plotWaitProcess(content, callback){
|
|
$MMWService.sendToWMMServer({
|
|
uri : 'MoStatusChange',
|
|
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, options.close);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
plotInfoGet(options.plotItem, function(data){
|
|
openDialog(data);
|
|
})
|
|
|
|
};
|
|
}]);
|
|
});
|