591 lines
23 KiB
JavaScript
591 lines
23 KiB
JavaScript
![]() |
define(['angularAMD'], function (angularAMD) {
|
||
|
angularAMD.service('epm00Service', [
|
||
|
'$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/moduleEPM/program/mrs-epm/epm00/epm00.html',
|
||
|
function (dialog) {
|
||
|
|
||
|
$rootScope.EQPBreakDownList = [];
|
||
|
$rootScope.selectAll = false; //是否全選
|
||
|
$rootScope.InitBreakDownNo = "" ; //序號
|
||
|
$rootScope.userInfo = config.cache.account;
|
||
|
$rootScope.exeTime = ""; //統一執行時間
|
||
|
dialog.nowtime = moment()//.format('yyyy/MM/dd hh/mm/ss');
|
||
|
|
||
|
dialog.EQPNO;
|
||
|
|
||
|
var list;
|
||
|
|
||
|
|
||
|
//取得設備資料
|
||
|
function funLoadEquipmentBasis_ALL() {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri: 'kcEQP.clsEQPBasis.LoadEquipmentBasis',
|
||
|
content: {
|
||
|
IssueState: 2
|
||
|
},
|
||
|
success: function (data) {
|
||
|
|
||
|
var tmpJson = JSON.parse(data.ResultJson);
|
||
|
var tmp;
|
||
|
tmp = tmpJson.EQPEquipmentBasis;
|
||
|
list = tmp;
|
||
|
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//取得設備資料
|
||
|
dialog.EQPEvent = function () {
|
||
|
|
||
|
$rootScope.showSelect({
|
||
|
title: "{{'epm00.title1'|translate}}" ,
|
||
|
label: "EQUIPMENTNO",
|
||
|
code: "EQUIPMENTNO",
|
||
|
order: "EQUIPMENTNO",
|
||
|
selectCode: '',
|
||
|
list: list,
|
||
|
|
||
|
confirm: function (s_item, s_dialog) {
|
||
|
s_dialog.hide();
|
||
|
|
||
|
if (s_item.EQUIPMENTNO) {
|
||
|
dialog.EQPNO = s_item.EQUIPMENTNO;
|
||
|
|
||
|
//重置資料
|
||
|
$rootScope.EQPBreakDownList = [];
|
||
|
$rootScope.selectAll = false; //是否全選
|
||
|
$rootScope.InitBreakDownNo = ""; //序號
|
||
|
$rootScope.tmpState = "";
|
||
|
|
||
|
//取得選擇的設備
|
||
|
scan_device_ID = dialog.EQPNO;
|
||
|
|
||
|
if (dialog.EQPNO != "") {
|
||
|
//dialog.scan_device_ID = scan_device_ID;
|
||
|
|
||
|
//檢查輸入的設備是否存在
|
||
|
funLoadEquipmentBasis(dialog.EQPNO, function (EQPdata) {
|
||
|
if (EQPdata.EQPEquipmentBasis.length > 0) {
|
||
|
var strEQPType = EQPdata.EQPEquipmentBasis[0].EQUIPMENTTYPE;
|
||
|
|
||
|
//檢查設備是否已登錄
|
||
|
funGetEQPBreakDownState(dialog.EQPNO, function (data) {
|
||
|
|
||
|
//沒有資料
|
||
|
if (data.PMEQPBreakDownState[0].EQPSERIALNO == null) {
|
||
|
if (strEQPType != "" && strEQPType !== "undefined") {
|
||
|
//依設備類型取得故障原因
|
||
|
funLoadEQPTypeBreakDownMap(strEQPType, function (EQPBDdata) {
|
||
|
|
||
|
if (EQPBDdata.PMEQPTypeBreakDownMap.length > 0) {
|
||
|
$rootScope.EQPBreakDownList = EQPBDdata.PMEQPTypeBreakDownMap;
|
||
|
//dialog.EQPBreakDownList = $rootScope.EQPBreakDownList;
|
||
|
|
||
|
//取得登錄序號
|
||
|
$rootScope.InitBreakDownNo = ""; //序號
|
||
|
funInitBreakDownNo(function (data) {
|
||
|
$rootScope.InitBreakDownNo = data.ReturnValue;
|
||
|
});
|
||
|
|
||
|
//取得EQP State Control的設定
|
||
|
funGetStateControlType(function (data) {
|
||
|
$rootScope.tmpState = data.EQPStateControl[0].EQUIPMENTSTATE;
|
||
|
});
|
||
|
|
||
|
} else {
|
||
|
//沒有資料可登錄, 請先關聯故障原因
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg01'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
} else {
|
||
|
//設備已登錄
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg02'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
//設備不存在
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg03'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
//請刷入設備編號
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg04'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
funLoadEquipmentBasis_ALL();
|
||
|
|
||
|
|
||
|
return {
|
||
|
scan_device_ID:'',
|
||
|
|
||
|
|
||
|
beforeShown:function(){
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
},
|
||
|
background: {
|
||
|
click: function () {
|
||
|
dialog.hide();
|
||
|
if (typeof (feedback) == 'function')
|
||
|
feedback();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
barcodeScan : function(event){
|
||
|
//barcode example
|
||
|
if(event == undefined || event.keyCode == 13){
|
||
|
|
||
|
//重置資料
|
||
|
$rootScope.EQPBreakDownList = [];
|
||
|
$rootScope.selectAll = false; //是否全選
|
||
|
$rootScope.InitBreakDownNo = "" ; //序號
|
||
|
$rootScope.tmpState = "";
|
||
|
|
||
|
//取得刷入的設備
|
||
|
scan_device_ID = document.getElementById('scan_device_ID').value;
|
||
|
if (scan_device_ID != ""){
|
||
|
//dialog.scan_device_ID = scan_device_ID;
|
||
|
|
||
|
//檢查輸入的設備是否存在
|
||
|
funLoadEquipmentBasis(scan_device_ID, function(EQPdata){
|
||
|
if (EQPdata.EQPEquipmentBasis.length > 0){
|
||
|
var strEQPType = EQPdata.EQPEquipmentBasis[0].EQUIPMENTTYPE;
|
||
|
|
||
|
//檢查設備是否已登錄
|
||
|
funGetEQPBreakDownState(scan_device_ID, function(data){
|
||
|
|
||
|
//沒有資料
|
||
|
if (data.PMEQPBreakDownState[0].EQPSERIALNO == null){
|
||
|
if (strEQPType != "" && strEQPType !== "undefined"){
|
||
|
//依設備類型取得故障原因
|
||
|
funLoadEQPTypeBreakDownMap(strEQPType, function(EQPBDdata){
|
||
|
|
||
|
if (EQPBDdata.PMEQPTypeBreakDownMap.length > 0){
|
||
|
$rootScope.EQPBreakDownList = EQPBDdata.PMEQPTypeBreakDownMap;
|
||
|
|
||
|
//取得登錄序號
|
||
|
$rootScope.InitBreakDownNo = "" ; //序號
|
||
|
funInitBreakDownNo(function(data){
|
||
|
$rootScope.InitBreakDownNo = data.ReturnValue;
|
||
|
});
|
||
|
|
||
|
//取得EQP State Control的設定
|
||
|
funGetStateControlType(function(data){
|
||
|
$rootScope.tmpState = data.EQPStateControl[0].EQUIPMENTSTATE;
|
||
|
});
|
||
|
|
||
|
} else {
|
||
|
//沒有資料可登錄, 請先關聯故障原因
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg01'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
} else {
|
||
|
//設備已登錄
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg02'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
//設備不存在
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg03'), function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
//請刷入設備編號
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg04') , function () {
|
||
|
$rootScope.focusById('scan_device_ID');
|
||
|
document.getElementById('scan_device_ID').value = "";
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
scanQrcode : function(){
|
||
|
$rootScope.OpenScanner({
|
||
|
after : function(result){
|
||
|
dialog.EQPNO = result.text;
|
||
|
dialog.barcodeScan();
|
||
|
},
|
||
|
exception: function(){
|
||
|
//目前裝置無法使用相機
|
||
|
$rootScope.showAlert($filter('translate')('common.msg.camera_not_support'));
|
||
|
},
|
||
|
orientation : "landscape"
|
||
|
});
|
||
|
},
|
||
|
scan_focus : function(){
|
||
|
$rootScope.focusById('illustrate');
|
||
|
document.getElementById('illustrate').value = "";
|
||
|
},
|
||
|
itemClickSelect : function (item) {
|
||
|
$rootScope.selectAll = false;
|
||
|
item.isSelect = !item.isSelect;
|
||
|
//checkMachineHide(item.isSelect, item.LOTNO);
|
||
|
},
|
||
|
clickSelect : function () {
|
||
|
if (!($rootScope.EQPBreakDownList.length > 0)) {
|
||
|
$rootScope.selectAll = false;
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
$rootScope.selectAll = !$rootScope.selectAll;
|
||
|
|
||
|
var i = 0;
|
||
|
for (i = 0; i < $rootScope.EQPBreakDownList.length; i++) {
|
||
|
$rootScope.EQPBreakDownList[i].isSelect = $rootScope.selectAll;
|
||
|
console.log(i);
|
||
|
//checkMachineHide($rootScope.EQPBreakDownList[i].isSelect, $rootScope.EQPBreakDownList[i].LOTNO);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
back: function () {
|
||
|
dialog.hide();
|
||
|
if (options.close) options.close();
|
||
|
},
|
||
|
confirm: function () {
|
||
|
//检查设备是否设定设备管控
|
||
|
LoadEquipmentState(scan_device_ID, function (data) {
|
||
|
if (data.EMSEquipmentState.length > 0) {
|
||
|
if ($rootScope.EQPBreakDownList.length > 0) {
|
||
|
|
||
|
|
||
|
var selectList = [];
|
||
|
var i = 0;
|
||
|
for (i = 0; i < $rootScope.EQPBreakDownList.length; i++) {
|
||
|
if ($rootScope.EQPBreakDownList[i].isSelect)
|
||
|
selectList.push($rootScope.EQPBreakDownList[i]);
|
||
|
}
|
||
|
|
||
|
if (selectList.length > 0) {
|
||
|
//取得執行時間
|
||
|
$rootScope.exeTime = moment().format('YYYY-MM-DD HH:mm:ss');
|
||
|
|
||
|
if ($rootScope.InitBreakDownNo != "") {
|
||
|
|
||
|
//填寫設備故障現況資料
|
||
|
funAddEQPBreakDownState(scan_device_ID, function (data){
|
||
|
|
||
|
//依breakdownserialno將設備故障明細資料刪除
|
||
|
funDelEQPBreakDownStateDetail(function (data){
|
||
|
|
||
|
//填寫設備故障明細資料
|
||
|
for (var index in selectList){
|
||
|
var strBreakDownNo = selectList[index].BREAKDOWNNO;
|
||
|
funAddEQPBreakDownStateDetail(strBreakDownNo, function(data){
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if ($rootScope.tmpState != "" && $rootScope.tmpState !== "undefined"){
|
||
|
//變更設備狀態 funEditEquipmentState
|
||
|
funEditEquipmentState(scan_device_ID, $rootScope.tmpState, function(data){
|
||
|
//修改EQP BreakDownState為 Waiting(待處理)及EQPSerialNo
|
||
|
funEditEQPBreakDownState(function(data){
|
||
|
|
||
|
if (options.callback) options.callback(true);
|
||
|
dialog.hide();
|
||
|
});
|
||
|
});
|
||
|
} else {
|
||
|
//EQP State Control Set Not Found!
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg07'));
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
} else {
|
||
|
//取不到序號
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg05'));
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//請選取資料
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg06'));
|
||
|
}
|
||
|
} else {
|
||
|
//沒有資料可登錄
|
||
|
$rootScope.showAlert($filter('translate')('epm00.msg.msg08'));
|
||
|
}
|
||
|
//if (options.callback) options.callback(true);
|
||
|
//dialog.hide();
|
||
|
}
|
||
|
else {
|
||
|
$rootScope.showAlert($filter('translate')("epm00.NoEquipmentState"));
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
};
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|
||
|
openDialog();
|
||
|
};
|
||
|
|
||
|
//取得设备设定的状态
|
||
|
function LoadEquipmentState(strEquipmentNo, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri: 'kcEMS.clsEMSEquipment.LoadEquipmentState',
|
||
|
content: {
|
||
|
EquipmentNo: strEquipmentNo,
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
//取得設備資料
|
||
|
function funLoadEquipmentBasis(strEquipmentNo, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcEQP.clsEQPBasis.LoadEquipmentBasis',
|
||
|
content: {
|
||
|
EquipmentNo: strEquipmentNo,
|
||
|
IssueState:2
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//取得設備故障原因資訊
|
||
|
function funLoadEQPTypeBreakDownMap(strEquipmentType, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.LoadEQPTypeBreakDownMap',
|
||
|
content: {
|
||
|
EquipmentType: strEquipmentType
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//取得序號
|
||
|
function funInitBreakDownNo(callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'udPM.clsPM.InitBreakDownNo',
|
||
|
content: {
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//填寫設備故障現況資料
|
||
|
function funAddEQPBreakDownState(strEquipmentNo, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.AddEQPBreakDownState',
|
||
|
content: {
|
||
|
EquipmentNo: strEquipmentNo,
|
||
|
BreakDownStartTime: $rootScope.exeTime,
|
||
|
BreakDownSerialNo: $rootScope.InitBreakDownNo,
|
||
|
//Description: 'iPAD',
|
||
|
Description: illustrate.value,
|
||
|
Creator:$rootScope.userInfo,
|
||
|
CreateDate:$rootScope.exeTime
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//依breakdownserialno將設備故障明細資料刪除
|
||
|
function funDelEQPBreakDownStateDetail(callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.DelEQPBreakDownStateDetail',
|
||
|
content: {
|
||
|
BreakDownSerialNo: $rootScope.InitBreakDownNo
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
console.log(data);
|
||
|
if (data.Result != 'fail') {
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
} else {
|
||
|
$rootScope.showAlert(data.SysMsg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
//填寫設備故障明細資料
|
||
|
function funAddEQPBreakDownStateDetail(strBreakDownNo, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.AddEQPBreakDownStateDetail',
|
||
|
content: {
|
||
|
BreakDownSerialNo: $rootScope.InitBreakDownNo,
|
||
|
BreakDownNo :strBreakDownNo
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
console.log(data);
|
||
|
if (data.Result != 'fail') {
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
} else {
|
||
|
$rootScope.showAlert(data.SysMsg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//取得EQP State Control的設定
|
||
|
function funGetStateControlType(callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcEQP.clsEQPStateControl.GetStateControlType',
|
||
|
content: {
|
||
|
ControlNo: "BreakDown",
|
||
|
ControlType: "EQP Break Down"
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//變更設備狀態
|
||
|
function funEditEquipmentState(strEquipmentNoNo, iEquipmentState, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcEMS.clsEMSEquipment.EditEquipmentState',
|
||
|
content: {
|
||
|
EquipmentNo: strEquipmentNoNo,
|
||
|
EquipmentState :iEquipmentState,
|
||
|
UserNo: $rootScope.userInfo,
|
||
|
Description: "Confirm EQP Break Down(iPAD)",
|
||
|
StartTime:$rootScope.exeTime
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
console.log(data);
|
||
|
if (data.Result != 'fail') {
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
} else {
|
||
|
$rootScope.showAlert(data.SysMsg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//修改EQP BreakDownState為 Waiting(待處理)及EQPSerialNo
|
||
|
function funEditEQPBreakDownState(callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.EditEQPBreakDownState',
|
||
|
content: {
|
||
|
BreakDownSerialNo: $rootScope.InitBreakDownNo,
|
||
|
State: 1
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
console.log(data);
|
||
|
if (data.Result != 'fail') {
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
} else {
|
||
|
$rootScope.showAlert(data.SysMsg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//檢查機台是否已登錄
|
||
|
function funGetEQPBreakDownState(strEquipmentNo, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcPM.clsPMBasis.GetEQPBreakDownState',
|
||
|
content: {
|
||
|
EquipmentNo: strEquipmentNo
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
]);
|
||
|
});
|