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/moduleEPM/program/mrs-epm/epm00/epm00Service.js
2024-01-24 16:47:50 +08:00

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