293 lines
8.2 KiB
JavaScript
293 lines
8.2 KiB
JavaScript
![]() |
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"
|
||
|
});
|
||
|
}
|
||
|
}]
|
||
|
});
|