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