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 Item = require('./models/item');
let Pdata = require('./models/pdata'); let Pdata = require('./models/pdata');
let Component= require('./models/component'); let Component= require('./models/component');
require('./js/cmHelper')
//let Tool = require('./models/tool') //let Tool = require('./models/tool')
var wCounter=0; var wCounter=0;
@ -91,7 +92,7 @@ var utils = require('./js/utils');
function ensureExists(path, mask, cb) { function ensureExists(path, mask, cb) {
if (typeof mask == 'function') { // allow the `mask` parameter to be optional if (typeof mask == 'function') { // allow the `mask` parameter to be optional
cb = mask; cb = mask;
mask = 0777; mask = 0o777;
} }
fs.mkdir(path, mask, function(err) { fs.mkdir(path, mask, function(err) {
if (err) { if (err) {
@ -526,7 +527,7 @@ app.get('/filter', utils.ensureAuthenticated, function(req, res) {
wc+=el.employeeList.length; wc+=el.employeeList.length;
}); });
work.wc=wc*8; work.wc=wc*8;
var megrendelo=work.megrendelo || '-'
//for (var i = 0; i < works.length; i++) { //for (var i = 0; i < works.length; i++) {
var po='-'; var po='-';
// var work=works[i]; // var work=works[i];
@ -544,17 +545,18 @@ app.get('/filter', utils.ensureAuthenticated, function(req, res) {
if (work.wc>0) if (work.wc>0)
drCount= '<td style="text-align:right"><span class="badge badge-success">' + work.wc+'</td>'; drCount= '<td style="text-align:right"><span class="badge badge-success">' + work.wc+'</td>';
else 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>'+ tr+='<tr><td>'+(index+1)+'</td>'+
etemp+ 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>'+ //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:left; vertical-align:middle;font-size: 9px;font-weight: bold;">' +megrendelo+'</td>'+
'<td style="text-align:center">' + work.workDate + '</td>'+ '<td style="vertical-align:middle"><a href="/work/'+work._id+'">'+ work.title+'</a></td>'+
'<td style="text-align:center">' + state+'</td>'+ '<td style="text-align:center;vertical-align:middle">' + work.workDate + '</td>'+
'<td style="text-align:right">' + work.workNumber+'</td>'+ '<td style="text-align:center;vertical-align:middle">' + state+'</td>'+
'<td style="text-align:left;vertical-align:middle">' + work.workNumber+'</td>'+
drCount+ drCount+
'<td style="text-align:right">' + po+'</td>'+ '<td style="text-align:center;vertical-align:middle">' + po+'</td>'+
'<td style="text-align:right"><span class="badge">' + work.devicesArray.length+'</td>' '<td style="text-align:left;vertical-align:middle"><span class="badge">' + work.devicesArray.length+'</td>'
}); });
res.send(tr); 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 // Article Schema
var a = require('./article'); var a = require('./article');
let workSchema = mongoose.Schema({ let workSchema = mongoose.Schema({
// CM DATA
megrendelo:{
type: String,
require: true
},
cmId:{
type: Number,
require: true
},
cmRendAzonosito:{
type: String,
require: true
},
// Megnevezés // Megnevezés
title:{ title:{
type: String, type: String,

View File

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

View File

@ -1,6 +1,7 @@
extends layout extends layout
block content block content
.mainContainer
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css') 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='/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') 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 li
a(href='#',data-value='2022') 2022 a(href='#',data-value='2022') 2022
li li
a(href='#',data-value='2022') 2023 a(href='#',data-value='2023') 2023
li
a(href='#',data-value='2024') 2024
li li
a(href='#',data-value='') Mind a(href='#',data-value='') Mind
//.input-group //.input-group
@ -135,22 +138,25 @@ block content
col(width='1%') col(width='1%')
col(width='1%') col(width='1%')
col(width='auto') col(width='auto')
col(width='auto')
col(width='15%') col(width='15%')
col(width='5%') col(width='5%')
col(width='10%') col(width='5%')
col(width='10%') col(width='5%')
col(width='5%')
col(width='5%') col(width='5%')
thead thead
tr tr
th # th #
th th
th(style='text-align:left') Megrendelő
th Megnevezés th Megnevezés
th(style='text-align:center') Létrehozva th(style='text-align:center') Létrehozva
th(style='text-align:center') Státusz 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') Órák
th(style='text-align:center') PO szám th(style='text-align:center') PO szám
th Berendezések th(style='text-align:left') Ber.
tbody(id='workTable',style='overflow-y: auto;') tbody(id='workTable',style='overflow-y: auto;')
each work, i in works each work, i in works
tr 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') 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 else
td 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 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') if (work.state==='Opened')
td(style='text-align:center') Folyamatban td(style='text-align:center;vertical-align:middle') Folyamatban
else else
if (work.state==='Closed') if (work.state==='Closed')
td(style='text-align:center') Lezárva td(style='text-align:center;vertical-align:middle') Lezárva
else 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:left;vertical-align:middle') #{work.workNumber}
td(style='text-align:center') td(style='text-align:center;vertical-align:middle')
if (work.wc>0) if (work.wc>0)
span.badge.badge-success #{work.wc} span.badge.badge-success #{work.wc}
else else
span.badge #{work.wc} span.badge #{work.wc}
td(style='text-align:right') #{work.poNumber} td(style='text-align:center;vertical-align:middle') #{work.poNumber}
td(style='text-align:right') td(style='text-align:left;vertical-align:middle')
span.badge #{work.devicesArray.length} span.badge #{work.devicesArray.length}
script(src='/bower_components/jquery/dist/jquery.js') script(src='/bower_components/jquery/dist/jquery.js')
script(type='text/javascript',src='/build/pdfmake.js') script(type='text/javascript',src='/build/pdfmake.js')

View File

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