434 lines
15 KiB
JavaScript
434 lines
15 KiB
JavaScript
define(["angularAMD"], function (angularAMD) {
|
|
angularAMD.service('mrs00Service', ["$rootScope", "$filter", "$stateParams", "config", "MMWService", "DashboardService", 'RouterExtendProvider', '$mdDialog', '$timeout',
|
|
function ($rootScope, $filter, $stateParams, config, $MMWService, $DashboardService, $RouterExtendProvider, $mdDialog, $timeout) {
|
|
|
|
this.init = function (options) {
|
|
function openDialog() {
|
|
$mdDialog.dialog('module/moduleWIP/program/mrs-eqp/mrs00/mrs00.html',
|
|
function (dialog) {
|
|
|
|
//動作模式(1:作業站 2:EQP)
|
|
dialog.ActionMode = 1;
|
|
|
|
//取得設備綁定狀態
|
|
dialog.Binding = options.Binding;
|
|
|
|
//正在使用中的工作站編號
|
|
dialog.workStation = config.cache.workStation || '';
|
|
|
|
//選擇到的機台編號
|
|
//dialog.machine_no = config.cache.equipment || '';
|
|
|
|
//工作站內的機台列表
|
|
dialog.equipmentList = [];
|
|
|
|
//成功搜尋的工作站編號
|
|
dialog.searchWorkStation = dialog.workStation;
|
|
|
|
|
|
//刷設備列出作業站資訊(Start)
|
|
dialog.eqp = config.cache.equipment;
|
|
dialog.listWorkStation = [];
|
|
dialog.strWorkStation = config.cache.workStation;
|
|
//刷設備列出作業站資訊(End)
|
|
|
|
function getOP_Basis(stationNo, callback) {
|
|
|
|
$MMWService.sendToMESSrv({
|
|
uri: 'kcOP.clsOpBasis.LoadOPBasis',
|
|
content: {
|
|
opno: stationNo,
|
|
IssueState: 2,
|
|
GetXml_CLOB: false,
|
|
columns: ['opno', 'opname', 'multioperatormode', 'materialoption']
|
|
},
|
|
success: function (data) {
|
|
if (callback)
|
|
callback(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function getAllMachineData(stationNo, callback) {
|
|
|
|
|
|
$MMWService.sendToMESSrv({
|
|
uri: 'kcWIP.clsMDS.LoadEquipmentInfoByOP',
|
|
content: {
|
|
OPNo: stationNo,
|
|
ds: []
|
|
},
|
|
success: function (data) {
|
|
if (callback)
|
|
callback(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function Check_EMSEQUIPMENTSTATE(callback) {
|
|
|
|
$MMWService.sendToMESSrv({
|
|
uri: 'kcEMS.clsEMSEquipment.ShowEquipmentState',
|
|
content: {
|
|
EquipmentNo: dialog.machine_no
|
|
},
|
|
success: function (data) {
|
|
if (callback)
|
|
callback(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function search(content, callback) {
|
|
|
|
$rootScope.alertStatus(function (Status) {
|
|
if (Status == 1) {
|
|
return;
|
|
} else {
|
|
|
|
$rootScope.EQPCheck_ModuleWIP(content.workStation, function (data, result) {
|
|
if (result == false) {
|
|
return;
|
|
}
|
|
|
|
getAllMachineData(content.workStation, function (data) {
|
|
data = JSON.parse(data.ResultJson);
|
|
var dt = data["ds"]["query_result"];
|
|
|
|
dialog.searchWorkStation = content.workStation;
|
|
|
|
//========== 我的最愛功能 (Start) ==========
|
|
if (config.cache.eqpbind != undefined && config.cache.eqpbind != null && config.cache.eqpbind.length > 0) {
|
|
var drSel;
|
|
drSel = config.cache.eqpbind.filter(item => item['account'] == config.cache.account &&
|
|
item['workStation'] == content.workStation);
|
|
|
|
if (drSel.length > 0) {
|
|
dialog.machine_no = drSel[0]['equipment'];
|
|
}
|
|
|
|
}
|
|
//========== 我的最愛功能 (End) ==========
|
|
|
|
|
|
//define temp arry
|
|
var equipmentList = [];
|
|
|
|
if (dt.length > 0) {
|
|
|
|
dt.forEach(item => {
|
|
if (!item.MACHINE_NAME || item.MACHINE_NAME == null)
|
|
item.MACHINE_NAME = "";
|
|
})
|
|
|
|
equipmentList = dt;
|
|
|
|
if (callback) {
|
|
callback(equipmentList);
|
|
}
|
|
|
|
} else {
|
|
$rootScope.showAlert($filter('translate')('mrs00.msg.cantGet') + content.workStation + $filter('translate')('mrs00.msg.machineInfo'));
|
|
dialog.machine_no = '';
|
|
dialog.equipmentList = [];
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//===============================================================
|
|
//
|
|
// 刷設備列出作業站資訊(Start)
|
|
//
|
|
//===============================================================
|
|
|
|
|
|
|
|
function getAllMachineData_OP(strEQP, callback) {
|
|
|
|
|
|
$MMWService.sendToMESSrv({
|
|
uri: 'kcWIP.clsMDS.LoadEquipmentInfoByOP',
|
|
content: {
|
|
EquipmentNo: strEQP,
|
|
ds: []
|
|
},
|
|
success: function (data) {
|
|
if (callback)
|
|
callback(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function Check_EMSEQUIPMENTSTATE_eqp(callback) {
|
|
|
|
$MMWService.sendToMESSrv({
|
|
uri: 'kcEMS.clsEMSEquipment.ShowEquipmentState',
|
|
content: {
|
|
EquipmentNo: dialog.eqp
|
|
},
|
|
success: function (data) {
|
|
if (callback)
|
|
callback(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function search_eqp(content, callback) {
|
|
|
|
$rootScope.alertStatus(function (Status) {
|
|
if (Status == 1) {
|
|
return;
|
|
} else {
|
|
|
|
//$rootScope.EQPCheck_ModuleWIP(content.workStation, function (data,result) {
|
|
/*
|
|
if (result == false){
|
|
return;
|
|
}
|
|
*/
|
|
|
|
getAllMachineData_OP(content.eqpno, function (data) {
|
|
data = JSON.parse(data.ResultJson);
|
|
var dt = data["ds"]["query_result"];
|
|
|
|
|
|
|
|
//========== 我的最愛功能 (Start) ==========
|
|
// if(config.cache.eqpbind != undefined && config.cache.eqpbind != null && config.cache.eqpbind.length > 0){
|
|
// var drSel;
|
|
// drSel = config.cache.eqpbind.filter(item => item['account'] == config.cache.account &&
|
|
// item['workStation'] == content.workStation);
|
|
|
|
// if(drSel.length > 0) {
|
|
// dialog.machine_no = drSel[0]['equipment'];
|
|
// }
|
|
|
|
// }
|
|
//========== 我的最愛功能 (End) ==========
|
|
|
|
|
|
if (dt.length > 0) {
|
|
|
|
dialog.listWorkStation = dt;
|
|
|
|
} else {
|
|
$rootScope.showAlert($filter('translate')('mrs00.msg.cantGet') + dialog.eqp + $filter('translate')('mrs00.msg.machineInfo'));
|
|
dialog.eqp = '';
|
|
dialog.listWorkStation = [];
|
|
}
|
|
});
|
|
//});
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
//=====================刷設備列出作業站資訊(End)=====================
|
|
|
|
|
|
if (dialog.Binding != false) {
|
|
|
|
if (dialog.ActionMode == 1) {
|
|
//取得目前作業站內所有設備
|
|
search({
|
|
workStation: dialog.workStation
|
|
}, function (data) {
|
|
dialog.equipmentList = data;
|
|
});
|
|
|
|
} else {
|
|
search_eqp({ eqpno: dialog.eqp });
|
|
}
|
|
|
|
}
|
|
|
|
//============== 刷設備列出作業站資訊(Start) ==============
|
|
// if (dialog.Binding != false) {
|
|
// //取得目前作業站內所有設備
|
|
// search_eqp({ eqpno: dialog.eqp });
|
|
// }
|
|
//============== 刷設備列出作業站資訊(End) ==============
|
|
|
|
if ($rootScope.platform == 'desktop') {
|
|
$timeout(function () {
|
|
document.getElementById('scan_op').focus();
|
|
document.getElementById('scan_op').select();
|
|
});
|
|
}
|
|
|
|
return {
|
|
css_url: 'module/moduleWIP/program/mrs-eqp/mrs00/mrs00.css',
|
|
back: function () {
|
|
dialog.hide();
|
|
if (options.close)
|
|
options.close();
|
|
},
|
|
background: {
|
|
click: function () {
|
|
dialog.hide();
|
|
if (typeof (feedback) == 'function')
|
|
feedback();
|
|
}
|
|
},
|
|
scan_focus: function () {
|
|
|
|
if ($rootScope.platform == 'desktop') {
|
|
$timeout(function () {
|
|
document.getElementById('scan_op').focus();
|
|
document.getElementById('scan_op').select();
|
|
});
|
|
}
|
|
|
|
},
|
|
scanQrcode: function () {
|
|
$rootScope.$root.OpenScanner({
|
|
after: function (result) {
|
|
|
|
//20231108,13871,0149837: 【华引芯】作业站报工
|
|
dialog.workStation = result.text;
|
|
|
|
search({
|
|
workStation: dialog.workStation
|
|
}, function (data) {
|
|
dialog.equipmentList = data;
|
|
});
|
|
},
|
|
exception: function () {
|
|
//目前裝置無法使用相機
|
|
$rootScope.showAlert($filter('translate')('common.msg.camera_not_support'));
|
|
},
|
|
orientation: "landscape"
|
|
});
|
|
},
|
|
barcodeScan: function (event) {
|
|
if (event.keyCode == 13) {
|
|
|
|
search({
|
|
workStation: dialog.workStation
|
|
}, function (data) {
|
|
dialog.equipmentList = data;
|
|
});
|
|
|
|
}
|
|
},
|
|
itemClick: function (equipment, $event) {
|
|
dialog.machine_no = equipment.MACHINE_NO;
|
|
},
|
|
confirm: function () {
|
|
Check_EMSEQUIPMENTSTATE(function (data) {
|
|
var dt = JSON.parse(data.ResultJson)['EMSEquipmentState'];
|
|
if (dt.length <= 0) {
|
|
$rootScope.showAlert($filter('translate')('mrs00.msg.pleaseSetEMS'));
|
|
return;
|
|
}
|
|
|
|
//config
|
|
config.setting.workStation = dialog.searchWorkStation;
|
|
config.setting.equipment = dialog.machine_no;
|
|
localStorage.setItem(config.appName + "_setting", JSON.stringify(config.setting));
|
|
|
|
//cache
|
|
config.cache.workStation = dialog.searchWorkStation;
|
|
config.cache.equipment = dialog.machine_no;
|
|
//config.cache.op = dialog.searchWorkStation; //20221123,13871,不應該覆蓋生產批報工使用的op
|
|
|
|
if (options.callback)
|
|
options.callback(true);
|
|
dialog.hide();
|
|
});
|
|
},
|
|
|
|
|
|
|
|
barcodeScan_eqp: function (event) {
|
|
if (event.keyCode == 13) {
|
|
|
|
search_eqp({ eqpno: dialog.eqp }, function (data) { });
|
|
}
|
|
},
|
|
|
|
scanQrcode_eqp: function () {
|
|
$rootScope.$root.OpenScanner({
|
|
after: function (result) {
|
|
|
|
dialog.eqp = result.text;
|
|
|
|
search_eqp({ eqpno: dialog.eqp }, function (data) { });
|
|
},
|
|
exception: function () {
|
|
//目前裝置無法使用相機
|
|
$rootScope.showAlert($filter('translate')('common.msg.camera_not_support'));
|
|
},
|
|
orientation: "landscape"
|
|
});
|
|
},
|
|
itemClick_eqp: function (equipment, $event) {
|
|
dialog.strWorkStation = equipment.WORKSTATION;
|
|
},
|
|
|
|
confirm_eqp: function () {
|
|
|
|
$rootScope.EQPCheck_ModuleWIP(dialog.strWorkStation, function (data, result) {
|
|
|
|
if (result == false) {
|
|
return;
|
|
}
|
|
|
|
Check_EMSEQUIPMENTSTATE_eqp(function (data) {
|
|
var dt = JSON.parse(data.ResultJson)['EMSEquipmentState'];
|
|
if (dt.length <= 0) {
|
|
$rootScope.showAlert($filter('translate')('mrs00.msg.pleaseSetEMS'));
|
|
return;
|
|
}
|
|
|
|
//config
|
|
config.setting.workStation = dialog.strWorkStation;
|
|
config.setting.equipment = dialog.eqp;
|
|
localStorage.setItem(config.appName + "_setting", JSON.stringify(config.setting));
|
|
|
|
//cache
|
|
config.cache.workStation = dialog.strWorkStation;
|
|
config.cache.equipment = dialog.eqp;
|
|
//config.cache.op = dialog.strWorkStation; //20221123,13871,不應該覆蓋生產批報工使用的op
|
|
|
|
if (options.callback)
|
|
options.callback(true);
|
|
dialog.hide();
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
changeActionMode: function (Mode) {
|
|
dialog.ActionMode = Mode;
|
|
},
|
|
|
|
}
|
|
|
|
})
|
|
}
|
|
|
|
openDialog();
|
|
|
|
}
|
|
|
|
}
|
|
]);
|
|
}); |