This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/iMES_PAD/module/moduleWIP/program/mrs-eqp/mrs09/mrs09Service.js
2024-01-24 16:47:50 +08:00

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);
})
};
}]);
});