CM Munkafelvétel működik

This commit is contained in:
Vincze József 2024-05-10 13:21:50 +02:00
parent 0ef413acb1
commit ccb625c366
7 changed files with 176 additions and 43 deletions

20
app.js
View File

@ -78,6 +78,7 @@ let Log = require('./models/logmodel');
let Item = require('./models/item');
let Pdata = require('./models/pdata');
let Component= require('./models/component');
require('./js/cmHelper')
//let Tool = require('./models/tool')
var wCounter=0;
@ -91,7 +92,7 @@ var utils = require('./js/utils');
function ensureExists(path, mask, cb) {
if (typeof mask == 'function') { // allow the `mask` parameter to be optional
cb = mask;
mask = 0777;
mask = 0o777;
}
fs.mkdir(path, mask, function(err) {
if (err) {
@ -526,7 +527,7 @@ app.get('/filter', utils.ensureAuthenticated, function(req, res) {
wc+=el.employeeList.length;
});
work.wc=wc*8;
var megrendelo=work.megrendelo || '-'
//for (var i = 0; i < works.length; i++) {
var po='-';
// var work=works[i];
@ -544,17 +545,18 @@ app.get('/filter', utils.ensureAuthenticated, function(req, res) {
if (work.wc>0)
drCount= '<td style="text-align:right"><span class="badge badge-success">' + work.wc+'</td>';
else
drCount='<td style="text-align:right"><span class="badge">' + work.wc+'</td>';
drCount='<td style="text-align:right;vertical-align:middle"><span class="badge">' + work.wc+'</td>';
tr+='<tr><td>'+(index+1)+'</td>'+
etemp+
//img(src='enaplo.png', width='16px', height='16px',style='text-align:center;vertical-align: middle',data-original-title='Enapló köteles' data-toggle='tooltip' data-placement='bottom' data-container='body')</td>'+
'<td><a href="/work/'+work._id+'">'+ work.title+'</a></td>'+
'<td style="text-align:center">' + work.workDate + '</td>'+
'<td style="text-align:center">' + state+'</td>'+
'<td style="text-align:right">' + work.workNumber+'</td>'+
'<td style="text-align:left; vertical-align:middle;font-size: 9px;font-weight: bold;">' +megrendelo+'</td>'+
'<td style="vertical-align:middle"><a href="/work/'+work._id+'">'+ work.title+'</a></td>'+
'<td style="text-align:center;vertical-align:middle">' + work.workDate + '</td>'+
'<td style="text-align:center;vertical-align:middle">' + state+'</td>'+
'<td style="text-align:left;vertical-align:middle">' + work.workNumber+'</td>'+
drCount+
'<td style="text-align:right">' + po+'</td>'+
'<td style="text-align:right"><span class="badge">' + work.devicesArray.length+'</td>'
'<td style="text-align:center;vertical-align:middle">' + po+'</td>'+
'<td style="text-align:left;vertical-align:middle"><span class="badge">' + work.devicesArray.length+'</td>'
});
res.send(tr);

103
js/cmHelper.js Normal file
View File

@ -0,0 +1,103 @@
const fetch = require("node-fetch");
let User = require('../models/user');
let Work=require('../models/works')
const moment = require('moment');
var fse = require('fs-extra');
const url = "https://cmmunkaszam.klelectro.eu/api/db/getLastWorknumber";
const CM_Fetch_WorkNumbers=async()=>
{
try{
const response = await fetch(url)
const jsonData = await response.json();
if (jsonData.success)
{
cmWorks=jsonData.val;
const user = await User.findOne({username: 'cmr'});
if (!user) return;
if (!user.canAdd.work) return;
cmWorks.forEach( async element => {
const foundWork= await Work.findOne({$or:[
{ cmId: element.ID},
{ workNumber: element.Szovertek},
{ title : element.Megnevezes},
{ cmRendAzonosito:element.RendAzon}
]})
if (!foundWork)
{
var vnValid=/^[2-9][0-9][0-9][0-9]\/[0-9][0-9][0-9][0-9]$/.test(element.Szovertek);
if (!vnValid)
{
console.log(`Hibás munkaszám: ${element.Szovertek}`)
return;
}
console.log(`Új munka: ${element.Szovertek+' '+element.munkanev}`);
let work=new Work();
work.title = element.munkanev;
work.author = user._id;
work.body = element.Megjegyzes;
work.poNumber=element.KulsoRendSzam;
work.megrendelo=element.SzamlNev;
work.workNumber=element.Szovertek;
work.cmRendAzonosito=element.RendAzon;
// console.log(work.workNumber);
work.workDate= moment().format('YYYY-MM-DD HH:mm:ss')
// Munka státusza
work.state='Opened'; // Nyitva
// Ütemterv
work.ganttData.id=work._id;
work.ganttData.text=work.title;
work.ganttData.start_date=moment().format('DD-MM-YYYY');
work.ganttData.duration=5;//req.body.duration;
work.ganttData.progress=0;
//db.users.findOne({"username" : {$regex : ".*son.*"}});
Work.findOne({'workNumber': work.workNumber}, function(err,wn) // Megnézzük van e már
{
if (err){
console.log(err);
}
else {
if (wn)
{
console.log("Már van ilyen munka");
}
else {
work.save(function(err){
if(err){
console.log(err);
return;
}else{
// Munka könyvtár létrehozása
//logging.logAppend("Munka hozzáadása.",req.user,work.id,Work.db.name,'WORKADD');
fse.mkdirs('/filedata/'+work._id, function(err){
if (err) return console.error(err);
console.log("Könyvtár létrehozva! ->"+"/filedata/"+work._id);
});
console.log('Work added.');
}
});
}
}
});
}
});
//console.log(jsonData.val);
}
}
catch(error) {
console.log(error);
};
}
// Esemény indítása éjjfélkor
setInterval(CM_Fetch_WorkNumbers,15000);

View File

@ -3,6 +3,19 @@ let mongoose = require('mongoose');
// Article Schema
var a = require('./article');
let workSchema = mongoose.Schema({
// CM DATA
megrendelo:{
type: String,
require: true
},
cmId:{
type: Number,
require: true
},
cmRendAzonosito:{
type: String,
require: true
},
// Megnevezés
title:{
type: String,

View File

@ -22,3 +22,8 @@
background-color: #007d99dc;
border-color: #285e8e; /*set the color you want here*/
}
.mainContainer{
margin-left: 5%;
width: 90%;
}

View File

@ -1,6 +1,7 @@
extends layout
block content
.mainContainer
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css')
link(rel='stylesheet' href='/bower_components/bootstrap-select/dist/css/bootstrap-select.css')
link(rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css')
@ -104,7 +105,9 @@ block content
li
a(href='#',data-value='2022') 2022
li
a(href='#',data-value='2022') 2023
a(href='#',data-value='2023') 2023
li
a(href='#',data-value='2024') 2024
li
a(href='#',data-value='') Mind
//.input-group
@ -135,22 +138,25 @@ block content
col(width='1%')
col(width='1%')
col(width='auto')
col(width='auto')
col(width='15%')
col(width='5%')
col(width='10%')
col(width='10%')
col(width='5%')
col(width='5%')
col(width='5%')
col(width='5%')
thead
tr
th #
th
th(style='text-align:left') Megrendelő
th Megnevezés
th(style='text-align:center') Létrehozva
th(style='text-align:center') Státusz
th(style='text-align:right') Munka szám
th(style='text-align:left') M.SZ.
th(style='text-align:center') Órák
th(style='text-align:center') PO szám
th Berendezések
th(style='text-align:left') Ber.
tbody(id='workTable',style='overflow-y: auto;')
each work, i in works
tr
@ -160,25 +166,26 @@ block content
img(src='enaplo.png', width='16px', height='16px',style='text-align:center;vertical-align: middle',data-original-title='Enapló köteles' data-toggle='tooltip' data-placement='bottom' data-container='body')
else
td
td
td(style='text-align:left; vertical-align:middle;font-size: 9px;font-weight: bold;') #{work.megrendelo || "-"}
td(style='vertical-align:middle')
a(href="/work/"+work._id)= work.title
td(style='text-align:center') #{work.workDate}
td(style='text-align:center;vertical-align:middle') #{work.workDate}
if (work.state==='Opened')
td(style='text-align:center') Folyamatban
td(style='text-align:center;vertical-align:middle') Folyamatban
else
if (work.state==='Closed')
td(style='text-align:center') Lezárva
td(style='text-align:center;vertical-align:middle') Lezárva
else
td(style='text-align:center')
td(style='text-align:center;vertical-align:middle')
td(style='text-align:right') #{work.workNumber}
td(style='text-align:center')
td(style='text-align:left;vertical-align:middle') #{work.workNumber}
td(style='text-align:center;vertical-align:middle')
if (work.wc>0)
span.badge.badge-success #{work.wc}
else
span.badge #{work.wc}
td(style='text-align:right') #{work.poNumber}
td(style='text-align:right')
td(style='text-align:center;vertical-align:middle') #{work.poNumber}
td(style='text-align:left;vertical-align:middle')
span.badge #{work.devicesArray.length}
script(src='/bower_components/jquery/dist/jquery.js')
script(type='text/javascript',src='/build/pdfmake.js')

View File

@ -106,25 +106,25 @@ html
if errors
each error, i in errors
div(class="alert alert-danger") #{error.msg}
block content
#exampleModal.modal.fade(tabindex='-1', role='dialog', aria-labelledby='exampleModalLabel', aria-hidden='true')
.modal-dialog(role='document')
.modal-content
.modal-header
h4#exampleModalLabel.modal-title Gyártási szám megadása
button.close(type='button', data-dismiss='modal', aria-label='Mégsem')
span(aria-hidden='true') ×
.modal-body
label(for='refuelPicker') EAN kód:
input.form-control(id='txtean1',name='txtean1',type=text, tabindex='2',autofocus,onFocus='this.select()',style='background-color:#c9ddfc;', value= vjkvtitle)
br
.modal-footer
button.btn.btn-secondary(type='button', data-dismiss='modal') Mégsem
button.btn.btn-primary(type='button',onclick='submitDeviceNumber()') Rendben
br
hr
footer
p IO-Technic Hungary Copyright &copy; 2018
block content
#exampleModal.modal.fade(tabindex='-1', role='dialog', aria-labelledby='exampleModalLabel', aria-hidden='true')
.modal-dialog(role='document')
.modal-content
.modal-header
h4#exampleModalLabel.modal-title Gyártási szám megadása
button.close(type='button', data-dismiss='modal', aria-label='Mégsem')
span(aria-hidden='true') ×
.modal-body
label(for='refuelPicker') EAN kód:
input.form-control(id='txtean1',name='txtean1',type=text, tabindex='2',autofocus,onFocus='this.select()',style='background-color:#c9ddfc;', value= vjkvtitle)
br
.modal-footer
button.btn.btn-secondary(type='button', data-dismiss='modal') Mégsem
button.btn.btn-primary(type='button',onclick='submitDeviceNumber()') Rendben
br
hr
footer
p IO-Technic Hungary Copyright &copy; 2018
script(src='/bower_components/jquery/dist/jquery.js')
//script(src='http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js')
//script(type='text/javascript', src='/bower_components/jquery/dist/jquery.min.js')

View File

@ -1,6 +1,7 @@
extends layout
block content
.container
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css')
link(href='//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css', rel='stylesheet')
style(type="text/css").
@ -41,6 +42,7 @@ block content
h4(id='entemp',style='display:none;') #{work.enaploTemplate}
h4(style="text-align:right;") Munka szám:
h4(style="text-align:right;") PO szám:
h4(style="text-align:right;") CMR Rendszám:
if (enaplodata.azonosito)
h5(style="text-align:right;") e-napló:
h5(style="text-align:right;") Projekt:
@ -48,6 +50,7 @@ block content
div.col-md-7
h4 #{work.workNumber}
h4 #{work.poNumber}
h4 #{work.cmRendAzonosito}
if (enaplodata.azonosito)
h5 #{enaplodata.azonosito}
h5 #{enaplodata.project+' '+enaplodata.helyszin}