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') + "
" + 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" }); } }] });