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/mrs00/mrs00Service.js
2024-01-24 16:47:50 +08:00

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