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/mrs01/mrs01.js

293 lines
8.2 KiB
JavaScript
Raw Normal View History

2024-01-24 16:47:50 +08:00
define(["moment"], function (moment) {
return ["$scope", "$rootScope", "$filter", "$stateParams", "$datePicker", "$timeout", "DashboardService", "config", "$timeout", "MMWService","mrs00Service",
function ($scope, $rootScope, $filter, $stateParams, $datePicker, $timeout, $DashboardService, config, $timeout, $MMWService, $mrs00Service) {
/*System Process
1. Get OP MultiOperator_Mode
2. Scan UserNO , System Will Auto Decide Work
*/
$scope.eqp_check;
$scope.multemployee_work_List = [];
$scope.blnShowOperatorLogInEmp = true;
$scope.blnShowOperatorLogOutEmp = true;
const scan_section = document.getElementById('scan_emp');
$scope.init = function () {
//init_Layout();
$rootScope.EQPCheck_ModuleWIP(config.cache.workStation, function (data,result) {
if(result == false) {
return;
}
init_Layout();
});
}
function init_Layout() {
$scope.multemployee_work_List.length = 0;
$scope.operator = {
employee_no: "",
employee_name: "",
shift: "",
startTime: null,
endTime: null
};
//Current Binding OPNO
cur_op = config.cache.workStation;
//Current Binding eqp
$scope.barcode_eqp = config.cache.equipment
$scope.barcode = config.cache.tempuser;
ShowOperatorState(function (data, funcKey) {
if (data.Code == 0) {
var result = JSON.parse(data.ResultJson);
var ds = JSON.parse(result[funcKey]);
var dt = ds["WIPOperatorState"];
for (i = 0; i < dt.length; i++) {
var item = {
userno: dt[i].USERNO,
startTime: moment(dt[i].LOGINDATE).format('MM/DD HH:mm'),
employee_name: dt[i].USERNAME,
work_mode: "U"
};
$scope.multemployee_work_List.push(item);
}
}
});
$timeout(function () {
CheckOPInvoke(cur_op);
scan_focus();
});
}
$rootScope.change_machine = function (options) {
var bln_EQP_binding;
if (config.setting.equipment == '') {
bln_EQP_binding = false;
}
else {
bln_EQP_binding = true;
}
$mrs00Service.init({
Binding: bln_EQP_binding,
callback: function (confirm) {
if (confirm) {
if (!bln_EQP_binding) {
$rootScope.menuList = $scope.menu_temp;
$rootScope.bindingEQP = config.setting.equipment;
}
getEquipmentStatus(config.setting.equipment, function (data) {
data = JSON.parse(data.ResultJson);
$scope.$root.machine_info = data.machine_info[0];
});
init_Layout();
}
}
});
}
//Scan EMP event
$scope.search = function (event, callback) {
if (event == undefined || event.keyCode == 13) {
ShowOperatorProcess_Exec(function (data, funcKey) {
if (data.Code == 0) {
var result = JSON.parse(data.ResultJson);
var ds = JSON.parse(result[funcKey]);
var dt = ds["ShowOperatorProcess_Exec"];
var item = {
userno: dt[0].USERNO,
startTime: moment(dt[0].LOGINTIME).format('MM/DD HH:mm'),
endTime: moment(dt[0].LOGOUTTIME).format('MM/DD HH:mm'),
employee_name: dt[0].USERNAME
};
if (dt[0].ACTION == 0) {
item.work_mode = "U"
}
else if (dt[0].ACTION == 1) {
item.work_mode = "D"
}
//檢查重複,必須刪除
for (i = 0; i < $scope.multemployee_work_List.length; i++) {
if ($scope.multemployee_work_List[i].userno == item.userno) {
$scope.multemployee_work_List.splice(i, 1);
break;
}
}
var work_member_detail = {
employee_name: item.employee_name,
employee_no: item.userno,
login_place: item.eqp_no,
multi_operator_mode: $scope.opMULTIOPERATORMODE,
work_time: item.startTime
};
if (item.work_mode == "U") {
$DashboardService.dashboard['workOperator'].work_member_detail.push(work_member_detail);
} else if (item.work_mode == "D") {
if ($DashboardService.dashboard['workOperator'].work_member_detail) {
for (i = 0; i < $DashboardService.dashboard['workOperator'].work_member_detail.length; i++) {
if ($DashboardService.dashboard['workOperator'].work_member_detail[i].employee_no == item.userno) {
$DashboardService.dashboard['workOperator'].work_member_detail.splice(i, 1);
}
}
}
}
$scope.multemployee_work_List.push(item);
$scope.barcode = "";
scan_focus();
}
else {
}
});
}
}
//Scan Section Click Event
$scope.scan_focus = function () {
scan_focus();
}
function getEquipmentStatus(equipment, callback, isLoading) {
if (isLoading == undefined) {
isLoading = false;
}
$MMWService.sendToEAISrv({
uri: 'KMI.machine_status_get_json',
content: {
machine_no: equipment,
StationNo: config.setting.workStation,
num_of_days:7
},
success: function (data) {
if (callback)
callback(data);
},
error: function (data) {
$rootScope.showAlert(data.Exception);
}
}, isLoading);
}
function scan_focus() {
if ($rootScope.platform == 'desktop') {
scan_section.focus();
scan_section.select();
}
}
//檢查作業站的多人加工模式必須為作業站/設備
function CheckOPInvoke(machineno) {
$MMWService.sendToMESSrv({
uri: 'kcOP.clsOpBasis.LoadOPBasis',
content: {
opno: machineno
},
success: function (data) {
var result = JSON.parse(data.ResultJson);
var OPNO = result.OPBasis["0"]["OPNO"];
$scope.opMULTIOPERATORMODE = result.OPBasis["0"]["MULTIOPERATORMODE"];
if (OPNO != machineno) {
$scope.$root.showAlert($filter('translate')('mrs01_lot.opno') + " " + machineno + " " + $filter('translate')('mrs01_lot.msg.is_not_exit_in') + $filter('translate')('mrs01_lot.msg.opbasis'));
}
if ($scope.opMULTIOPERATORMODE != 2)
$scope.eqp_disable = true;
},
error: function (data) {
$scope.autoFocus('eqpno_opno');
$scope.$root.showAlert($filter('translate')('Setting.msg.connect.failure') + "<br>" + data.Exception);
}
});
}
function ShowOperatorState(callback) {
var funcs = [];
var func = "kcWIP.clsOperatorState.ShowOperatorState";
var contents = [];
var content = {
pLoginPlaceNo: $scope.barcode_eqp,
pOPNo:cur_op
};
funcs.push(func);
contents.push(content);
$MMWService.sendToMESSrv_Multi({
uri: funcs,
content: contents,
success: function (data) {
if (callback)
callback(data, func);
}
});
}
function ShowOperatorProcess_Exec(callback) {
var funcs = [];
var func = "kcWIP.clsMDS.ShowOperatorProcess_Exec";
var contents = [];
var content = {
pUserNo: $scope.barcode,
pOPNo: cur_op,
pLoginPlaceNo: $scope.barcode_eqp,
pMultiOperatorMode: $scope.opMULTIOPERATORMODE
};
funcs.push(func);
contents.push(content);
$MMWService.sendToMESSrv_Multi({
uri: funcs,
content: contents,
success: function (data) {
if (callback)
callback(data, func);
}
});
}
$scope.scanQrcode = function () {
$scope.$root.OpenScanner({
after: function (result) {
$scope.barcode = result.text;
var event = { keyCode: 13 };
$scope.search(event);
},
exception: function () {
//目前裝置無法使用相機
$scope.$root.showAlert($filter('translate')('common.msg.camera_not_support'));
},
orientation: "landscape"
});
}
}]
});