304 lines
10 KiB
JavaScript
304 lines
10 KiB
JavaScript
![]() |
define(['angularAMD'], function (angularAMD) {
|
||
|
angularAMD.service('epm01tmpService', [
|
||
|
'$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/epm01/epm01.tmp.html',
|
||
|
function (dialog) {
|
||
|
|
||
|
dialog.EQUIPMENTNO = options.EQUIPMENTNO;
|
||
|
dialog.BREAKDOWNSERIALNO = options.BREAKDOWNSERIALNO;
|
||
|
dialog.BREAKDOWNSTARTTIME = options.BREAKDOWNSTARTTIME;
|
||
|
dialog.selEQPStatus = "off"; //閒置
|
||
|
dialog.DESCRIPTION;
|
||
|
|
||
|
dialog.EQUIPMENTTYPE;
|
||
|
dialog.EQUIPMENTNAME;
|
||
|
|
||
|
dialog.StartDate = options.CREATEDATE;
|
||
|
dialog.EndDate = moment().format('YYYY/MM/DD HH:mm:ss');
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//取得維修資料
|
||
|
funLoadRepairBasis(function(RepairData){
|
||
|
if (RepairData.PMRepairBasis.length > 0){
|
||
|
$rootScope.RepairList = RepairData.PMRepairBasis;
|
||
|
|
||
|
|
||
|
} else {
|
||
|
//沒有維修資料
|
||
|
$rootScope.showAlert($filter('translate')('epm01tmp.msg.msg01'));
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
dialog.EQUIPMENTTYPE = options.EQUIPMENTTYPE;
|
||
|
dialog.EQUIPMENTNAME = options.EQUIPMENTNAME;
|
||
|
|
||
|
return {
|
||
|
css_url:'module/moduleEPM/program/mrs-epm/epm01/epm01tmpService.css',
|
||
|
|
||
|
itemClickSelect : function (item) {
|
||
|
$rootScope.selectAll = false;
|
||
|
item.isSelect = !item.isSelect;
|
||
|
},
|
||
|
|
||
|
changeEQPState: function () {
|
||
|
var orgEQPState = dialog.selEQPStatus;
|
||
|
var change;
|
||
|
if (orgEQPState == 'off')
|
||
|
change = 'on';
|
||
|
else
|
||
|
change = 'off';
|
||
|
|
||
|
dialog.selEQPStatus = change;
|
||
|
|
||
|
},
|
||
|
back: function () {
|
||
|
dialog.hide();
|
||
|
if (options.close) options.close();
|
||
|
},
|
||
|
confirm: function () {
|
||
|
|
||
|
var selectList = []; //已選取的資料
|
||
|
var i = 0;
|
||
|
for (i = 0; i < $rootScope.RepairList.length; i++) {
|
||
|
if ($rootScope.RepairList[i].isSelect)
|
||
|
selectList.push($rootScope.RepairList[i]);
|
||
|
}
|
||
|
if (selectList.length > 0) {
|
||
|
//開始維修時間,不可大於故障開始時間
|
||
|
var BDStartDate = moment(dialog.BREAKDOWNSTARTTIME).format("YYYY/MM/DD HH:mm:ss");
|
||
|
var EQPStatus = "0";
|
||
|
var strControlNo = "";
|
||
|
var strControlType = "";
|
||
|
var strDesc = "";
|
||
|
|
||
|
if (dialog.StartDate != undefined && dialog.EndDate != undefined){
|
||
|
if (dialog.StartDate >= dialog.BREAKDOWNSTARTTIME) {
|
||
|
|
||
|
//結束維修時間不可大於開始維修時間
|
||
|
if (dialog.StartDate < dialog.EndDate) {
|
||
|
|
||
|
if (dialog.selEQPStatus == 'off') {
|
||
|
EQPStatus = "0"; //閒置
|
||
|
strControlNo = "Idle";
|
||
|
strControlType = "EQP Break Down";
|
||
|
strDesc = "EQP Repair Register-Idle";
|
||
|
} else {
|
||
|
EQPStatus = "1"; //生產
|
||
|
strControlNo = "ContinueToProduction";
|
||
|
strControlType = "EQP Break Down";
|
||
|
strDesc = "EQP Repair Register-Production";
|
||
|
}
|
||
|
|
||
|
//整理資料值
|
||
|
var strUserNo= config.cache.account;
|
||
|
var ary_invoke=[];
|
||
|
var ary_content=[];
|
||
|
|
||
|
ary_invoke.length=0;
|
||
|
ary_content.length=0;
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.GetEQPBreakDownState');
|
||
|
ary_content.push({ BreakDownSerialNo: dialog.BREAKDOWNSERIALNO,
|
||
|
columns:['EQPSerialNo','Creator','CreateDate'],
|
||
|
m_transfer: [
|
||
|
{
|
||
|
"level": "G",
|
||
|
"parname": "EQPSerialNo",
|
||
|
"value": "EQPSerialNo"
|
||
|
},
|
||
|
{
|
||
|
"level": "G",
|
||
|
"parname": "Creator",
|
||
|
"value": "Creator"
|
||
|
},
|
||
|
{
|
||
|
"level": "G",
|
||
|
"parname": "CreateDate",
|
||
|
"value": "CreateDate"
|
||
|
},
|
||
|
]
|
||
|
});
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.AddEQPBreakDownLog');
|
||
|
ary_content.push({ BreakDownSerialNo:dialog.BREAKDOWNSERIALNO,
|
||
|
EquipmentNo:dialog.EQUIPMENTNO,
|
||
|
BreakDownStartTime:dialog.BREAKDOWNSTARTTIME,
|
||
|
BreakDownEndTime:dialog.StartDate,
|
||
|
//Description:'from iPAD',
|
||
|
Description:dialog.DESCRIPTION,
|
||
|
columns:[]
|
||
|
});
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.ShowEQPBreakDownStateDetail');
|
||
|
ary_content.push({ BreakDownSerialNo: dialog.BREAKDOWNSERIALNO,
|
||
|
columns:['BreakDownNo'],
|
||
|
m_transfer: [
|
||
|
{
|
||
|
"level": "G",
|
||
|
"parname": "BreakDownNo",
|
||
|
"value": "BreakDownNo"
|
||
|
}
|
||
|
]
|
||
|
});
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.AddEQPBreakDownLogDetail');
|
||
|
ary_content.push({ BreakDownSerialNo: dialog.BREAKDOWNSERIALNO, columns:[]});
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.AddEQPRepairLog');
|
||
|
ary_content.push({ BreakDownSerialNo: dialog.BREAKDOWNSERIALNO,
|
||
|
EquipmentNo:dialog.EQUIPMENTNO,
|
||
|
BreakDownStartTime:dialog.BREAKDOWNSTARTTIME,
|
||
|
RepairSerialNo:dialog.BREAKDOWNSERIALNO,
|
||
|
RepairStartTime:dialog.StartDate,
|
||
|
RepairEndTime:dialog.EndDate,
|
||
|
RepairUserNo:strUserNo,
|
||
|
//Description:'from iPAD',
|
||
|
Description:dialog.DESCRIPTION,
|
||
|
columns:[]});
|
||
|
|
||
|
for (i = 0; i < selectList.length; i++) {
|
||
|
var RepaireNo = selectList[i].REPAIRNO;
|
||
|
ary_invoke.push('kcPM.clsPMBasis.AddEQPRepairLogDetail');
|
||
|
ary_content.push({ RepairSerialNo: dialog.BREAKDOWNSERIALNO,
|
||
|
RepairNo:RepaireNo,
|
||
|
columns:[]});
|
||
|
}
|
||
|
|
||
|
ary_invoke.push('kcEMS.clsEMSEquipment.GetEquipmentState');
|
||
|
ary_content.push({ EquipmentNo:dialog.EQUIPMENTNO,
|
||
|
columns:['EQUIPMENTNO'],
|
||
|
m_transfer: [
|
||
|
{
|
||
|
"level": "S",
|
||
|
"parname": "EQUIPMENTNO",
|
||
|
"value": "EQUIPMENTNO"
|
||
|
}
|
||
|
]
|
||
|
});
|
||
|
|
||
|
ary_invoke.push('kcEQP.clsEQPStateControl.GetStateControlType');
|
||
|
ary_content.push({ ControlNo:strControlNo,
|
||
|
ControlType:strControlType,
|
||
|
columns:['EquipmentState'],
|
||
|
m_transfer: [
|
||
|
{
|
||
|
"level": "S",
|
||
|
"parname": "EquipmentState",
|
||
|
"value": "EquipmentState"
|
||
|
}
|
||
|
]
|
||
|
});
|
||
|
|
||
|
ary_invoke.push('kcEMS.clsEMSEquipment.EditEquipmentState');
|
||
|
ary_content.push({ EquipmentNo:dialog.EQUIPMENTNO,
|
||
|
UserNo:strUserNo,
|
||
|
Description: strDesc,
|
||
|
StartTime:dialog.EndDate,
|
||
|
columns:[]
|
||
|
});
|
||
|
|
||
|
|
||
|
ary_invoke.push('kcPM.clsPMBasis.DelEQPBreakDownState');
|
||
|
ary_content.push({ BreakDownSerialNo: dialog.BREAKDOWNSERIALNO, columns:[]});
|
||
|
|
||
|
|
||
|
|
||
|
//執行修復登錄
|
||
|
funUpdEQPRepairRegister(ary_invoke, ary_content, function(data){
|
||
|
var result = JSON.parse(JSON.parse(data.ResultJson)[ary_invoke[2]]);
|
||
|
|
||
|
if (options.callback) options.callback(true);
|
||
|
dialog.hide();
|
||
|
});
|
||
|
|
||
|
} else {
|
||
|
//結束維修時間,不可大於開始維修時間!
|
||
|
$rootScope.showAlert($filter('translate')('epm01tmp.msg.msg02'));
|
||
|
}
|
||
|
} else {
|
||
|
//開始維修時間,不可大於故障開始時間!
|
||
|
$rootScope.showAlert($filter('translate')('epm01tmp.msg.msg03'));
|
||
|
}
|
||
|
} else {
|
||
|
//請選取維修時間!
|
||
|
$rootScope.showAlert($filter('translate')('epm01tmp.msg.msg05'));
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
//請選取維修項目!
|
||
|
$rootScope.showAlert($filter('translate')('epm01tmp.msg.msg04'));
|
||
|
}
|
||
|
|
||
|
},
|
||
|
};
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|
||
|
openDialog();
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//取得維修資料
|
||
|
function funLoadRepairBasis(callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv({
|
||
|
uri : 'kcpm.clspmbasis.LoadRepairBasis',
|
||
|
content: {
|
||
|
IssueState:2
|
||
|
},
|
||
|
success: function (data) {
|
||
|
var data = JSON.parse(data.ResultJson);
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function funUpdEQPRepairRegister(ary_invoke, ary_content, callback) {
|
||
|
|
||
|
$MMWService.sendToMESSrv_Multi({
|
||
|
uri : ary_invoke,
|
||
|
content:ary_content,
|
||
|
success: function (data) {
|
||
|
if (callback)
|
||
|
callback(data);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
},
|
||
|
]);
|
||
|
});
|