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/epm01/epm01tmpService.js

304 lines
10 KiB
JavaScript
Raw Normal View History

2024-01-24 16:47:50 +08:00
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);
}
});
}
},
]);
});