tango-app-api-store-builder 1.0.39 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1929,9 +1929,19 @@ export async function getPlanoRevisionById( req, res ) {
|
|
|
1929
1929
|
},
|
|
1930
1930
|
];
|
|
1931
1931
|
let complianceStatus = await planoComplianceService.aggregate( complianceQuery );
|
|
1932
|
+
if ( fixture._id.toString() == '690b3745e4c80c1a0572ae4e' ) {
|
|
1933
|
+
console.log( complianceStatus?.[0]?.status, fixture._id.toString() );
|
|
1934
|
+
}
|
|
1932
1935
|
shelf.compliance = complianceStatus?.[0]?.status.length ? ( ( complianceStatus?.[0]?.status?.length != shelf.productPerShelf ) || complianceStatus?.[0]?.status?.includes( 'misplaced' ) ) ? 'improper' : 'proper' : 'improper';
|
|
1933
1936
|
return shelf;
|
|
1934
1937
|
} ) );
|
|
1938
|
+
fixture.vmConfig = await Promise.all( fixture.vmConfig.map( async ( vm ) => {
|
|
1939
|
+
const vmInfo = await planoVmService.findOne( { _id: vm.vmId } );
|
|
1940
|
+
return {
|
|
1941
|
+
...vm,
|
|
1942
|
+
...vmInfo?.toObject(),
|
|
1943
|
+
};
|
|
1944
|
+
} ) );
|
|
1935
1945
|
return fixture;
|
|
1936
1946
|
} ) );
|
|
1937
1947
|
return poly;
|
|
@@ -2369,11 +2379,11 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2369
2379
|
const file = req.files.file;
|
|
2370
2380
|
const { storeId, floorNumber } = req.body;
|
|
2371
2381
|
|
|
2372
|
-
if (!req?.files?.file) return res.sendError({ errMsg: 'File is required' }, 400);
|
|
2382
|
+
if ( !req?.files?.file ) return res.sendError( { errMsg: 'File is required' }, 400 );
|
|
2373
2383
|
|
|
2374
|
-
if (!storeId || !floorNumber) return res.sendError({ errMsg: 'storeId and floorNumber are required' }, 400);
|
|
2384
|
+
if ( !storeId || !floorNumber ) return res.sendError( { errMsg: 'storeId and floorNumber are required' }, 400 );
|
|
2375
2385
|
|
|
2376
|
-
if (!file.name.endsWith('.dxf')) return res.sendError({ errMsg: 'Only DXF files are allowed' }, 400);
|
|
2386
|
+
if ( !file.name.endsWith( '.dxf' ) ) return res.sendError( { errMsg: 'Only DXF files are allowed' }, 400 );
|
|
2377
2387
|
|
|
2378
2388
|
|
|
2379
2389
|
// if (file.size > 20 * 1024 * 1024) {
|
|
@@ -2391,7 +2401,7 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2391
2401
|
|
|
2392
2402
|
const fileRes = await fileUpload( fileUploadPayload );
|
|
2393
2403
|
|
|
2394
|
-
if (!fileRes?.Key) return res.sendError({ errMsg: 'Failed to upload file to storage' }, 502);
|
|
2404
|
+
if ( !fileRes?.Key ) return res.sendError( { errMsg: 'Failed to upload file to storage' }, 502 );
|
|
2395
2405
|
|
|
2396
2406
|
// CAD Extraction
|
|
2397
2407
|
const dataExtractPayload = {
|
|
@@ -2410,8 +2420,8 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2410
2420
|
|
|
2411
2421
|
if ( !cadRes.ok ) {
|
|
2412
2422
|
const errorText = await cadRes.text();
|
|
2413
|
-
logger.error({ cadLambdaError: errorText });
|
|
2414
|
-
return res.sendError({ errMsg: 'CAD extraction service failed' }, 502);
|
|
2423
|
+
logger.error( { cadLambdaError: errorText } );
|
|
2424
|
+
return res.sendError( { errMsg: 'CAD extraction service failed' }, 502 );
|
|
2415
2425
|
}
|
|
2416
2426
|
|
|
2417
2427
|
const cadData = await cadRes.json();
|
|
@@ -2426,10 +2436,10 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2426
2436
|
!cadData?.data?.layoutPolygon
|
|
2427
2437
|
) {
|
|
2428
2438
|
return res.sendError(
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2439
|
+
{
|
|
2440
|
+
errMsg: 'Invalid CAD layout data',
|
|
2441
|
+
errInfo: { cadData, input: dataExtractPayload },
|
|
2442
|
+
}, 502 );
|
|
2433
2443
|
}
|
|
2434
2444
|
|
|
2435
2445
|
const userMeta = {
|
|
@@ -2441,9 +2451,9 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2441
2451
|
// PLANOGRAM
|
|
2442
2452
|
let planoData = await planoService.findOne( { storeId }, { _id: 1, clientId: 1, storeName: 1 } );
|
|
2443
2453
|
|
|
2444
|
-
if (!planoData) {
|
|
2445
|
-
const storeData = await storeService.findOne({ storeId }, { clientId: 1, storeName: 1 });
|
|
2446
|
-
if (!storeData) return res.sendError({ errMsg: 'Unable to find the store to create planogram' }, 400);
|
|
2454
|
+
if ( !planoData ) {
|
|
2455
|
+
const storeData = await storeService.findOne( { storeId }, { clientId: 1, storeName: 1 } );
|
|
2456
|
+
if ( !storeData ) return res.sendError( { errMsg: 'Unable to find the store to create planogram' }, 400 );
|
|
2447
2457
|
|
|
2448
2458
|
const newPlano = {
|
|
2449
2459
|
clientId: storeData.clientId,
|
|
@@ -2458,8 +2468,8 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2458
2468
|
...userMeta,
|
|
2459
2469
|
};
|
|
2460
2470
|
|
|
2461
|
-
planoData = await planoService.create(newPlano);
|
|
2462
|
-
if (!planoData) return res.sendError({ errMsg: 'Failed to create new planogram' }, 400);
|
|
2471
|
+
planoData = await planoService.create( newPlano );
|
|
2472
|
+
if ( !planoData ) return res.sendError( { errMsg: 'Failed to create new planogram' }, 400 );
|
|
2463
2473
|
}
|
|
2464
2474
|
|
|
2465
2475
|
const floorPayload = {
|
|
@@ -2486,8 +2496,8 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2486
2496
|
...userMeta,
|
|
2487
2497
|
};
|
|
2488
2498
|
|
|
2489
|
-
floorData = await floorService.create(newFloor);
|
|
2490
|
-
if (!floorData) return res.sendError({ errMsg: 'Failed to create new floor layout' }, 400);
|
|
2499
|
+
floorData = await floorService.create( newFloor );
|
|
2500
|
+
if ( !floorData ) return res.sendError( { errMsg: 'Failed to create new floor layout' }, 400 );
|
|
2491
2501
|
}
|
|
2492
2502
|
|
|
2493
2503
|
const meta = {
|
|
@@ -2499,36 +2509,36 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2499
2509
|
};
|
|
2500
2510
|
|
|
2501
2511
|
// Create Fixtures
|
|
2502
|
-
const processedFixtures = computeStoreFixtures(cadData.data, meta);
|
|
2512
|
+
const processedFixtures = computeStoreFixtures( cadData.data, meta );
|
|
2503
2513
|
const storeFixtures = [];
|
|
2504
2514
|
const storeFixtureShelves = [];
|
|
2505
2515
|
|
|
2506
2516
|
try {
|
|
2507
|
-
await Promise.all([
|
|
2508
|
-
fixtureShelfService.deleteMany({ floorId: meta.floorId }),
|
|
2509
|
-
storeFixtureService.deleteMany({ floorId: meta.floorId }),
|
|
2510
|
-
]);
|
|
2517
|
+
await Promise.all( [
|
|
2518
|
+
fixtureShelfService.deleteMany( { floorId: meta.floorId } ),
|
|
2519
|
+
storeFixtureService.deleteMany( { floorId: meta.floorId } ),
|
|
2520
|
+
] );
|
|
2511
2521
|
|
|
2512
|
-
for (let i = 0; i < processedFixtures.length; i++) {
|
|
2522
|
+
for ( let i = 0; i < processedFixtures.length; i++ ) {
|
|
2513
2523
|
const fix = processedFixtures[i];
|
|
2514
|
-
const fixRes = await storeFixtureService.create(fix);
|
|
2515
|
-
if (fixRes) {
|
|
2524
|
+
const fixRes = await storeFixtureService.create( fix );
|
|
2525
|
+
if ( fixRes ) {
|
|
2516
2526
|
const fixture = fixRes.toObject();
|
|
2517
|
-
storeFixtures.push({ ...fixture, shelfConfig: fix.shelfConfig });
|
|
2527
|
+
storeFixtures.push( { ...fixture, shelfConfig: fix.shelfConfig } );
|
|
2518
2528
|
|
|
2519
|
-
const shelvesToCreate = fix?.shelfConfig?.map(s => {
|
|
2529
|
+
const shelvesToCreate = fix?.shelfConfig?.map( ( s ) => {
|
|
2520
2530
|
return {
|
|
2521
2531
|
...s,
|
|
2522
2532
|
...meta,
|
|
2523
|
-
fixtureId: fixture._id
|
|
2524
|
-
}
|
|
2525
|
-
})
|
|
2526
|
-
storeFixtureShelves.push(...shelvesToCreate);
|
|
2533
|
+
fixtureId: fixture._id,
|
|
2534
|
+
};
|
|
2535
|
+
} );
|
|
2536
|
+
storeFixtureShelves.push( ...shelvesToCreate );
|
|
2527
2537
|
}
|
|
2528
2538
|
}
|
|
2529
2539
|
|
|
2530
|
-
if(storeFixtureShelves.length){
|
|
2531
|
-
await fixtureShelfService.insertMany(storeFixtureShelves);
|
|
2540
|
+
if ( storeFixtureShelves.length ) {
|
|
2541
|
+
await fixtureShelfService.insertMany( storeFixtureShelves );
|
|
2532
2542
|
}
|
|
2533
2543
|
} catch ( e ) {
|
|
2534
2544
|
logger.error( {
|
|
@@ -2539,25 +2549,24 @@ export async function createPlanoFromCAD( req, res ) {
|
|
|
2539
2549
|
|
|
2540
2550
|
|
|
2541
2551
|
try {
|
|
2542
|
-
const updateStoreFixtures = await processFixtureTemplates({ fixtures: storeFixtures });
|
|
2552
|
+
const updateStoreFixtures = await processFixtureTemplates( { fixtures: storeFixtures } );
|
|
2543
2553
|
|
|
2544
|
-
if (updateStoreFixtures.length) await storeFixtureService.bulkUpsert(updateStoreFixtures);
|
|
2545
|
-
} catch (e) {
|
|
2546
|
-
logger.error({
|
|
2554
|
+
if ( updateStoreFixtures.length ) await storeFixtureService.bulkUpsert( updateStoreFixtures );
|
|
2555
|
+
} catch ( e ) {
|
|
2556
|
+
logger.error( {
|
|
2547
2557
|
functionName: 'createPlanoFromCAD [Update Fixtures]',
|
|
2548
2558
|
error: e,
|
|
2549
|
-
});
|
|
2559
|
+
} );
|
|
2550
2560
|
}
|
|
2551
2561
|
|
|
2552
|
-
return res.sendSuccess(meta);
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
logger.error({
|
|
2562
|
+
return res.sendSuccess( meta );
|
|
2563
|
+
} catch ( error ) {
|
|
2564
|
+
logger.error( {
|
|
2556
2565
|
functionName: 'createPlanoFromCAD',
|
|
2557
2566
|
error,
|
|
2558
2567
|
} );
|
|
2559
2568
|
|
|
2560
|
-
return res.sendError({ errMsg: 'Failed to create planogram.' }, 500);
|
|
2569
|
+
return res.sendError( { errMsg: 'Failed to create planogram.' }, 500 );
|
|
2561
2570
|
}
|
|
2562
2571
|
}
|
|
2563
2572
|
|
|
@@ -2602,7 +2611,7 @@ function transformFixtureData( data ) {
|
|
|
2602
2611
|
associatedElementNumber: data?.wallNumber,
|
|
2603
2612
|
associatedElementFixtureNumber: data.fixtureNumber,
|
|
2604
2613
|
associatedElementType: f?.associatedElementType === 'wall' ? 'wall' : undefined,
|
|
2605
|
-
productBrandName: Array.isArray(f?.productBrandName) ? f?.productBrandName?.map(normalizeCadText) : normalizeCadText(f?.productBrandName),
|
|
2614
|
+
productBrandName: Array.isArray( f?.productBrandName ) ? f?.productBrandName?.map( normalizeCadText ) : normalizeCadText( f?.productBrandName ),
|
|
2606
2615
|
shelfConfig: f?.shelfConfig ?? [],
|
|
2607
2616
|
fixtureHeight: {
|
|
2608
2617
|
value: 0,
|
|
@@ -2625,10 +2634,10 @@ function transformFixtureData( data ) {
|
|
|
2625
2634
|
|
|
2626
2635
|
function computeStoreFixtures( data, meta ) {
|
|
2627
2636
|
let fixtures = [];
|
|
2628
|
-
const walls = (data?.layoutPolygon ?? []).filter(e => e.elementType === 'wall').sort((a,b) => a.elementNumber - b.elementNumber);
|
|
2629
|
-
const allFixtures = walls.flatMap(w => w?.fixtures);
|
|
2630
|
-
allFixtures.forEach((f,i) => f.fixtureNumber = i + 1);
|
|
2631
|
-
|
|
2637
|
+
const walls = ( data?.layoutPolygon ?? [] ).filter( ( e ) => e.elementType === 'wall' ).sort( ( a, b ) => a.elementNumber - b.elementNumber );
|
|
2638
|
+
const allFixtures = walls.flatMap( ( w ) => w?.fixtures );
|
|
2639
|
+
allFixtures.forEach( ( f, i ) => f.fixtureNumber = i + 1 );
|
|
2640
|
+
|
|
2632
2641
|
for ( let i = 1; i <= walls.length; i++ ) {
|
|
2633
2642
|
const w = walls[i - 1];
|
|
2634
2643
|
const wFixtures = w?.fixtures ?? [];
|
|
@@ -2664,11 +2673,11 @@ function computeStoreFixtures( data, meta ) {
|
|
|
2664
2673
|
return fixtures;
|
|
2665
2674
|
}
|
|
2666
2675
|
|
|
2667
|
-
async function processFixtureTemplates(data) {
|
|
2676
|
+
async function processFixtureTemplates( data ) {
|
|
2668
2677
|
const updateStoreFixtures = [];
|
|
2669
2678
|
const newFixtureTemplates = [];
|
|
2670
2679
|
|
|
2671
|
-
for (let i = 0; i < data.fixtures.length; i++) {
|
|
2680
|
+
for ( let i = 0; i < data.fixtures.length; i++ ) {
|
|
2672
2681
|
let fixture = data.fixtures[i];
|
|
2673
2682
|
const mapKey = `${fixture.fixtureCategory}${fixture.fixtureWidth.value}${fixture.fixtureWidth.unit}${fixture.header.label}`;
|
|
2674
2683
|
|
|
@@ -2700,13 +2709,13 @@ async function processFixtureTemplates(data) {
|
|
|
2700
2709
|
},
|
|
2701
2710
|
];
|
|
2702
2711
|
|
|
2703
|
-
let [subTemplate, masterTemplate] = await Promise.all([
|
|
2704
|
-
await fixtureConfigService.aggregate(subTemplateQuery),
|
|
2705
|
-
await fixtureConfigService.aggregate(masterTemplateQuery),
|
|
2706
|
-
]);
|
|
2712
|
+
let [ subTemplate, masterTemplate ] = await Promise.all( [
|
|
2713
|
+
await fixtureConfigService.aggregate( subTemplateQuery ),
|
|
2714
|
+
await fixtureConfigService.aggregate( masterTemplateQuery ),
|
|
2715
|
+
] );
|
|
2707
2716
|
|
|
2708
2717
|
|
|
2709
|
-
if (!subTemplate?.length) {
|
|
2718
|
+
if ( !subTemplate?.length ) {
|
|
2710
2719
|
const templateGroupName = fixture.header.label;
|
|
2711
2720
|
let templateIndex = 1;
|
|
2712
2721
|
|
|
@@ -2716,25 +2725,25 @@ async function processFixtureTemplates(data) {
|
|
|
2716
2725
|
status: 'complete',
|
|
2717
2726
|
templateIndex: masterTemplate.length ? masterTemplate.length + 1 : 1,
|
|
2718
2727
|
crestMapKey: mapKey,
|
|
2719
|
-
}
|
|
2728
|
+
};
|
|
2720
2729
|
|
|
2721
2730
|
delete newTemplateData._id;
|
|
2722
2731
|
|
|
2723
|
-
if (!masterTemplate.length) {
|
|
2732
|
+
if ( !masterTemplate.length ) {
|
|
2724
2733
|
const newMasterTemplate = {
|
|
2725
2734
|
...newTemplateData,
|
|
2726
2735
|
fixtureName: `${newTemplateData?.header?.label}-${newTemplateData?.fixtureCategory}`,
|
|
2727
2736
|
templateType: 'master',
|
|
2728
2737
|
crestMapKey: mapKey,
|
|
2729
|
-
}
|
|
2730
|
-
masterTemplate = await fixtureConfigService.create(newMasterTemplate);
|
|
2738
|
+
};
|
|
2739
|
+
masterTemplate = await fixtureConfigService.create( newMasterTemplate );
|
|
2731
2740
|
} else {
|
|
2732
2741
|
masterTemplate = masterTemplate[0];
|
|
2733
2742
|
|
|
2734
2743
|
const masterTempIndexQuery = [
|
|
2735
2744
|
{
|
|
2736
2745
|
$match: {
|
|
2737
|
-
masterTemplateId: new mongoose.Types.ObjectId(masterTemplate._id),
|
|
2746
|
+
masterTemplateId: new mongoose.Types.ObjectId( masterTemplate._id ),
|
|
2738
2747
|
},
|
|
2739
2748
|
}, {
|
|
2740
2749
|
$group: {
|
|
@@ -2744,7 +2753,7 @@ async function processFixtureTemplates(data) {
|
|
|
2744
2753
|
},
|
|
2745
2754
|
];
|
|
2746
2755
|
|
|
2747
|
-
const getMaxTempIndex = await fixtureConfigService.aggregate(masterTempIndexQuery);
|
|
2756
|
+
const getMaxTempIndex = await fixtureConfigService.aggregate( masterTempIndexQuery );
|
|
2748
2757
|
templateIndex = getMaxTempIndex?.[0]?.tempId + 1;
|
|
2749
2758
|
}
|
|
2750
2759
|
|
|
@@ -2755,7 +2764,7 @@ async function processFixtureTemplates(data) {
|
|
|
2755
2764
|
newTemplateData.createdAt = new Date();
|
|
2756
2765
|
newTemplateData.updatedAt = new Date();
|
|
2757
2766
|
|
|
2758
|
-
subTemplate = await fixtureConfigService.create(newTemplateData);
|
|
2767
|
+
subTemplate = await fixtureConfigService.create( newTemplateData );
|
|
2759
2768
|
|
|
2760
2769
|
fixture.fixtureConfigId = subTemplate._id;
|
|
2761
2770
|
fixture.masterTemplateId = masterTemplate._id;
|
|
@@ -2767,9 +2776,9 @@ async function processFixtureTemplates(data) {
|
|
|
2767
2776
|
fixture.masterTemplateId = sub?.masterTemplateId;
|
|
2768
2777
|
}
|
|
2769
2778
|
|
|
2770
|
-
newFixtureTemplates.push(subTemplate);
|
|
2771
|
-
updateStoreFixtures.push(fixture);
|
|
2779
|
+
newFixtureTemplates.push( subTemplate );
|
|
2780
|
+
updateStoreFixtures.push( fixture );
|
|
2772
2781
|
}
|
|
2773
2782
|
|
|
2774
2783
|
return updateStoreFixtures;
|
|
2775
|
-
}
|
|
2784
|
+
}
|
|
@@ -15434,3 +15434,376 @@ export async function update4487Inventory( req, res ) {
|
|
|
15434
15434
|
return res.sendError( e.message || 'Internal Server Error', 500 );
|
|
15435
15435
|
}
|
|
15436
15436
|
}
|
|
15437
|
+
|
|
15438
|
+
export async function insertAntennaMappingData( req, res ) {
|
|
15439
|
+
try {
|
|
15440
|
+
const storeName = "LKST4487";
|
|
15441
|
+
let successCount = 0;
|
|
15442
|
+
let errorCount = 0;
|
|
15443
|
+
const errors = [];
|
|
15444
|
+
|
|
15445
|
+
const antennaMapingData = [
|
|
15446
|
+
{
|
|
15447
|
+
"fixtureNumber": 14,
|
|
15448
|
+
"readerId": "a4:e8:a3:91:7f:01",
|
|
15449
|
+
"storageBoxAntennaNo": [ 1, 2, 3, 6, 7 ],
|
|
15450
|
+
"shelfConfig": [
|
|
15451
|
+
{ "shelfNumber": 1, "antennaNo": [ 18 ] },
|
|
15452
|
+
{ "shelfNumber": 2, "antennaNo": [ 16 ] },
|
|
15453
|
+
{ "shelfNumber": 3, "antennaNo": [ 15 ] },
|
|
15454
|
+
{ "shelfNumber": 4, "antennaNo": [ 20 ] },
|
|
15455
|
+
{ "shelfNumber": 5, "antennaNo": [ 19 ] },
|
|
15456
|
+
{ "shelfNumber": 6, "antennaNo": [ 17 ] },
|
|
15457
|
+
{ "shelfNumber": 7, "antennaNo": [ 12 ] },
|
|
15458
|
+
{ "shelfNumber": 8, "antennaNo": [ 10 ] },
|
|
15459
|
+
],
|
|
15460
|
+
},
|
|
15461
|
+
{
|
|
15462
|
+
"fixtureNumber": 15,
|
|
15463
|
+
"readerId": "a4:e8:a3:91:7f:01",
|
|
15464
|
+
"storageBoxAntennaNo": [ 8, 9, 11, 13, 14 ],
|
|
15465
|
+
"shelfConfig": [
|
|
15466
|
+
{ "shelfNumber": 1, "antennaNo": [ 26 ] },
|
|
15467
|
+
{ "shelfNumber": 2, "antennaNo": [ 25 ] },
|
|
15468
|
+
{ "shelfNumber": 3, "antennaNo": [ 24 ] },
|
|
15469
|
+
{ "shelfNumber": 4, "antennaNo": [ 23 ] },
|
|
15470
|
+
{ "shelfNumber": 5, "antennaNo": [ 22 ] },
|
|
15471
|
+
{ "shelfNumber": 6, "antennaNo": [ 21 ] },
|
|
15472
|
+
{ "shelfNumber": 7, "antennaNo": [ 4 ] },
|
|
15473
|
+
{ "shelfNumber": 8, "antennaNo": [ 5 ] },
|
|
15474
|
+
],
|
|
15475
|
+
},
|
|
15476
|
+
{
|
|
15477
|
+
"fixtureNumber": 3,
|
|
15478
|
+
"wallNumber": 1,
|
|
15479
|
+
"readerId": "a4:e8:a3:91:7f:01",
|
|
15480
|
+
"storageBoxAntennaNo": [ 25, 26, 27, 28, 29 ],
|
|
15481
|
+
"shelfConfig": [
|
|
15482
|
+
{ "shelfNumber": 1, "antennaNo": [ 15 ] },
|
|
15483
|
+
{ "shelfNumber": 2, "antennaNo": [ 16 ] },
|
|
15484
|
+
{ "shelfNumber": 3, "antennaNo": [ 21, 19 ] },
|
|
15485
|
+
{ "shelfNumber": 4, "antennaNo": [ 17, 18 ] },
|
|
15486
|
+
{ "shelfNumber": 5, "antennaNo": [ 20, 22 ] },
|
|
15487
|
+
{ "shelfNumber": 6, "antennaNo": [ 23, 24 ] },
|
|
15488
|
+
],
|
|
15489
|
+
},
|
|
15490
|
+
{
|
|
15491
|
+
"fixtureNumber": 4,
|
|
15492
|
+
"wallNumber": 1,
|
|
15493
|
+
"readerId": "a4:e8:a3:91:7f:01",
|
|
15494
|
+
"storageBoxAntennaNo": [ 5, 6, 9, 13 ],
|
|
15495
|
+
"shelfConfig": [
|
|
15496
|
+
{ "shelfNumber": 1, "antennaNo": [ 4 ] },
|
|
15497
|
+
{ "shelfNumber": 2, "antennaNo": [ 3 ] },
|
|
15498
|
+
{ "shelfNumber": 3, "antennaNo": [ 1, 2 ] },
|
|
15499
|
+
{ "shelfNumber": 4, "antennaNo": [ 10, 12 ] },
|
|
15500
|
+
{ "shelfNumber": 5, "antennaNo": [ 7, 14 ] },
|
|
15501
|
+
{ "shelfNumber": 6, "antennaNo": [ 8 ] },
|
|
15502
|
+
],
|
|
15503
|
+
},
|
|
15504
|
+
{
|
|
15505
|
+
"fixtureNumber": 5,
|
|
15506
|
+
"readerId": "a4:e8:a3:91:7f:03",
|
|
15507
|
+
"storageBoxAntennaNo": [ 2, 5, 6, 7, 3 ],
|
|
15508
|
+
"shelfConfig": [
|
|
15509
|
+
{ "shelfNumber": 1, "antennaNo": [ 10 ] },
|
|
15510
|
+
{ "shelfNumber": 2, "antennaNo": [ 11 ] },
|
|
15511
|
+
{ "shelfNumber": 3, "antennaNo": [ 9, 16 ] },
|
|
15512
|
+
{ "shelfNumber": 4, "antennaNo": [ 20, 21 ] },
|
|
15513
|
+
{ "shelfNumber": 5, "antennaNo": [ 18, 19 ] },
|
|
15514
|
+
{ "shelfNumber": 6, "antennaNo": [ 25, 30 ] },
|
|
15515
|
+
],
|
|
15516
|
+
},
|
|
15517
|
+
{
|
|
15518
|
+
"fixtureNumber": 6,
|
|
15519
|
+
"readerId": "a4:e8:a3:91:7f:03",
|
|
15520
|
+
"storageBoxAntennaNo": [ 26, 27, 28, 29, 31 ],
|
|
15521
|
+
"shelfConfig": [
|
|
15522
|
+
{ "shelfNumber": 1, "antennaNo": [ 24 ] },
|
|
15523
|
+
{ "shelfNumber": 2, "antennaNo": [ 17 ] },
|
|
15524
|
+
{ "shelfNumber": 3, "antennaNo": [ 22, 23 ] },
|
|
15525
|
+
{ "shelfNumber": 4, "antennaNo": [ 12, 13 ] },
|
|
15526
|
+
{ "shelfNumber": 5, "antennaNo": [ 14, 15 ] },
|
|
15527
|
+
{ "shelfNumber": 6, "antennaNo": [ 1, 4 ] },
|
|
15528
|
+
],
|
|
15529
|
+
},
|
|
15530
|
+
{
|
|
15531
|
+
"fixtureNumber": 1,
|
|
15532
|
+
"readerId": "a4:e8:a3:91:7f:00",
|
|
15533
|
+
"storageBoxAntennaNo": [ 18, 19, 20, 21, 22 ],
|
|
15534
|
+
"shelfConfig": [
|
|
15535
|
+
{ "shelfNumber": 1, "antennaNo": [ 28 ] },
|
|
15536
|
+
{ "shelfNumber": 2, "antennaNo": [ 25 ] },
|
|
15537
|
+
{ "shelfNumber": 3, "antennaNo": [ 30, 31 ] },
|
|
15538
|
+
{ "shelfNumber": 4, "antennaNo": [ 29, 32 ] },
|
|
15539
|
+
{ "shelfNumber": 5, "antennaNo": [ 26, 27 ] },
|
|
15540
|
+
{ "shelfNumber": 6, "antennaNo": [ 16, 17 ] },
|
|
15541
|
+
],
|
|
15542
|
+
},
|
|
15543
|
+
{
|
|
15544
|
+
"fixtureNumber": 2,
|
|
15545
|
+
"wallNumber": 1,
|
|
15546
|
+
"readerId": "a4:e8:a3:91:7f:00",
|
|
15547
|
+
"storageBoxAntennaNo": [ 7, 8, 9, 10, 11 ],
|
|
15548
|
+
"shelfConfig": [
|
|
15549
|
+
{ "shelfNumber": 1, "antennaNo": [ 3 ] },
|
|
15550
|
+
{ "shelfNumber": 2, "antennaNo": [ 6 ] },
|
|
15551
|
+
{ "shelfNumber": 3, "antennaNo": [ 4, 5 ] },
|
|
15552
|
+
{ "shelfNumber": 4, "antennaNo": [ 1, 2 ] },
|
|
15553
|
+
{ "shelfNumber": 5, "antennaNo": [ 14, 15 ] },
|
|
15554
|
+
{ "shelfNumber": 6, "antennaNo": [ 12, 13 ] },
|
|
15555
|
+
],
|
|
15556
|
+
},
|
|
15557
|
+
{
|
|
15558
|
+
"fixtureNumber": 11,
|
|
15559
|
+
"wallNumber": 3,
|
|
15560
|
+
"readerId": "a4:e8:a3:91:7f:02",
|
|
15561
|
+
"storageBoxAntennaNo": [ 8, 9, 12, 13, 14 ],
|
|
15562
|
+
"shelfConfig": [
|
|
15563
|
+
{ "shelfNumber": 1, "antennaNo": [ 15 ] },
|
|
15564
|
+
{ "shelfNumber": 2, "antennaNo": [ 7 ] },
|
|
15565
|
+
{ "shelfNumber": 3, "antennaNo": [ 3 ] },
|
|
15566
|
+
{ "shelfNumber": 4, "antennaNo": [ 2 ] },
|
|
15567
|
+
{ "shelfNumber": 5, "antennaNo": [ 1 ] },
|
|
15568
|
+
{ "shelfNumber": 6, "antennaNo": [ 6, 7 ] },
|
|
15569
|
+
{ "shelfNumber": 7, "antennaNo": [ 5, 4 ] },
|
|
15570
|
+
{ "shelfNumber": 8, "antennaNo": [ 10, 11 ] },
|
|
15571
|
+
],
|
|
15572
|
+
},
|
|
15573
|
+
{
|
|
15574
|
+
"fixtureNumber": 9,
|
|
15575
|
+
"wallNumber": 3,
|
|
15576
|
+
"readerId": "a4:e8:a3:91:7f:04",
|
|
15577
|
+
"storageBoxAntennaNo": [ 17, 18, 19, 20, 21 ],
|
|
15578
|
+
"shelfConfig": [
|
|
15579
|
+
{ "shelfNumber": 1, "antennaNo": [ 26 ] },
|
|
15580
|
+
{ "shelfNumber": 2, "antennaNo": [ 24 ] },
|
|
15581
|
+
{ "shelfNumber": 3, "antennaNo": [ 25 ] },
|
|
15582
|
+
{ "shelfNumber": 4, "antennaNo": [ 23 ] },
|
|
15583
|
+
{ "shelfNumber": 5, "antennaNo": [ 30 ] },
|
|
15584
|
+
{ "shelfNumber": 6, "antennaNo": [ 29 ] },
|
|
15585
|
+
{ "shelfNumber": 7, "antennaNo": [ 27, 28 ] },
|
|
15586
|
+
{ "shelfNumber": 8, "antennaNo": [ 22, 8 ] },
|
|
15587
|
+
],
|
|
15588
|
+
},
|
|
15589
|
+
{
|
|
15590
|
+
"fixtureNumber": 10,
|
|
15591
|
+
"readerId": "a4:e8:a3:91:7f:04",
|
|
15592
|
+
"storageBoxAntennaNo": [ 1, 2, 3, 4, 5 ],
|
|
15593
|
+
"shelfConfig": [
|
|
15594
|
+
{ "shelfNumber": 1, "antennaNo": [ 13 ] },
|
|
15595
|
+
{ "shelfNumber": 2, "antennaNo": [ 14 ] },
|
|
15596
|
+
{ "shelfNumber": 3, "antennaNo": [ 15 ] },
|
|
15597
|
+
{ "shelfNumber": 4, "antennaNo": [ 16 ] },
|
|
15598
|
+
{ "shelfNumber": 5, "antennaNo": [ 12 ] },
|
|
15599
|
+
{ "shelfNumber": 6, "antennaNo": [ 9 ] },
|
|
15600
|
+
{ "shelfNumber": 7, "antennaNo": [ 10, 11 ] },
|
|
15601
|
+
{ "shelfNumber": 8, "antennaNo": [ 6, 7 ] },
|
|
15602
|
+
],
|
|
15603
|
+
},
|
|
15604
|
+
{
|
|
15605
|
+
"fixtureNumber": 12,
|
|
15606
|
+
"wallNumber": 3,
|
|
15607
|
+
"readerId": "a4:e8:a3:91:7f:04",
|
|
15608
|
+
"storageBoxAntennaNo": [ 14, 15, 16, 17, 18 ],
|
|
15609
|
+
"shelfConfig": [
|
|
15610
|
+
{ "shelfNumber": 1, "antennaNo": [ 25 ] },
|
|
15611
|
+
{ "shelfNumber": 2, "antennaNo": [ 26 ] },
|
|
15612
|
+
{ "shelfNumber": 3, "antennaNo": [ 27 ] },
|
|
15613
|
+
{ "shelfNumber": 4, "antennaNo": [ 21 ] },
|
|
15614
|
+
{ "shelfNumber": 5, "antennaNo": [ 24 ] },
|
|
15615
|
+
{ "shelfNumber": 6, "antennaNo": [ 22 ] },
|
|
15616
|
+
{ "shelfNumber": 7, "antennaNo": [ 20 ] },
|
|
15617
|
+
{ "shelfNumber": 8, "antennaNo": [ 19 ] },
|
|
15618
|
+
],
|
|
15619
|
+
},
|
|
15620
|
+
{
|
|
15621
|
+
"fixtureNumber": 13,
|
|
15622
|
+
"wallNumber": 3,
|
|
15623
|
+
"readerId": "a4:e8:a3:91:7f:04",
|
|
15624
|
+
"storageBoxAntennaNo": [ 1, 2, 5, 6, 7 ],
|
|
15625
|
+
"shelfConfig": [
|
|
15626
|
+
{ "shelfNumber": 1, "antennaNo": [ 13 ] },
|
|
15627
|
+
{ "shelfNumber": 2, "antennaNo": [ 11 ] },
|
|
15628
|
+
{ "shelfNumber": 3, "antennaNo": [ 10 ] },
|
|
15629
|
+
{ "shelfNumber": 4, "antennaNo": [ 8 ] },
|
|
15630
|
+
{ "shelfNumber": 5, "antennaNo": [ 12 ] },
|
|
15631
|
+
{ "shelfNumber": 6, "antennaNo": [ 9 ] },
|
|
15632
|
+
{ "shelfNumber": 7, "antennaNo": [ 4 ] },
|
|
15633
|
+
{ "shelfNumber": 8, "antennaNo": [ 3 ] },
|
|
15634
|
+
],
|
|
15635
|
+
},
|
|
15636
|
+
{
|
|
15637
|
+
"fixtureNumber": 7,
|
|
15638
|
+
"wallNumber": 2,
|
|
15639
|
+
"readerId": "a4:e8:a3:8e:85:43",
|
|
15640
|
+
"storageBoxAntennaNo": [ 7 ],
|
|
15641
|
+
"shelfConfig": [
|
|
15642
|
+
{ "shelfNumber": 1, "antennaNo": [ 6 ] },
|
|
15643
|
+
{ "shelfNumber": 2, "antennaNo": [ 8 ] },
|
|
15644
|
+
{ "shelfNumber": 3, "antennaNo": [ 5 ] },
|
|
15645
|
+
{ "shelfNumber": 4, "antennaNo": [ 4 ] },
|
|
15646
|
+
{ "shelfNumber": 5, "antennaNo": [ 3 ] },
|
|
15647
|
+
{ "shelfNumber": 6, "antennaNo": [ 2 ] },
|
|
15648
|
+
{ "shelfNumber": 7, "antennaNo": [ 1 ] },
|
|
15649
|
+
],
|
|
15650
|
+
},
|
|
15651
|
+
{
|
|
15652
|
+
"fixtureNumber": 8,
|
|
15653
|
+
"wallNumber": 2,
|
|
15654
|
+
"readerId": "a4:e8:a3:8e:85:43",
|
|
15655
|
+
"storageBoxAntennaNo": [ 9, 10, 11, 12, 13 ],
|
|
15656
|
+
"shelfConfig": [
|
|
15657
|
+
{ "shelfNumber": 1, "antennaNo": [ 21 ] },
|
|
15658
|
+
{ "shelfNumber": 2, "antennaNo": [ 22 ] },
|
|
15659
|
+
{ "shelfNumber": 3, "antennaNo": [ 18, 24 ] },
|
|
15660
|
+
{ "shelfNumber": 4, "antennaNo": [ 19, 20 ] },
|
|
15661
|
+
{ "shelfNumber": 5, "antennaNo": [ 14, 15 ] },
|
|
15662
|
+
{ "shelfNumber": 6, "antennaNo": [ 16, 17 ] },
|
|
15663
|
+
{ "shelfNumber": 7, "antennaNo": [] },
|
|
15664
|
+
],
|
|
15665
|
+
},
|
|
15666
|
+
{
|
|
15667
|
+
"fixtureNumber": 16,
|
|
15668
|
+
"readerId": "A4-E8-A3-91-7E-FC",
|
|
15669
|
+
"storageBoxAntennaNo": [ 11, 14, 8 ],
|
|
15670
|
+
"shelfConfig": [
|
|
15671
|
+
{ "shelfNumber": 1, "antennaNo": [ 15 ] },
|
|
15672
|
+
{ "shelfNumber": 2, "antennaNo": [ 12, 18 ] },
|
|
15673
|
+
{ "shelfNumber": 3, "antennaNo": [ 9, 10 ] },
|
|
15674
|
+
],
|
|
15675
|
+
},
|
|
15676
|
+
{
|
|
15677
|
+
"fixtureNumber": 17,
|
|
15678
|
+
"readerId": "A4-E8-A3-91-7E-FC",
|
|
15679
|
+
"storageBoxAntennaNo": [ 2, 3, 1 ],
|
|
15680
|
+
"shelfConfig": [
|
|
15681
|
+
{ "shelfNumber": 1, "antennaNo": [ 5, 16 ] },
|
|
15682
|
+
{ "shelfNumber": 2, "antennaNo": [ 4, 13 ] },
|
|
15683
|
+
{ "shelfNumber": 3, "antennaNo": [ 17, 7 ] },
|
|
15684
|
+
],
|
|
15685
|
+
},
|
|
15686
|
+
{
|
|
15687
|
+
"fixtureNumber": 19,
|
|
15688
|
+
"readerId": "A4-E8-A3-91-7E-FC",
|
|
15689
|
+
"storageBoxAntennaNo": [],
|
|
15690
|
+
"shelfConfig": [
|
|
15691
|
+
{ "shelfNumber": 1, "antennaNo": [ 19, 25 ] },
|
|
15692
|
+
{ "shelfNumber": 2, "antennaNo": [ 26 ] },
|
|
15693
|
+
],
|
|
15694
|
+
},
|
|
15695
|
+
{
|
|
15696
|
+
"fixtureNumber": 18,
|
|
15697
|
+
"wallNumber": null,
|
|
15698
|
+
"readerId": "A4-E8-A3-91-7F-05",
|
|
15699
|
+
"storageBoxAntennaNo": [ 17, 18 ],
|
|
15700
|
+
"shelfConfig": [
|
|
15701
|
+
{ "shelfNumber": 1, "antennaNo": [ 21, 22 ] },
|
|
15702
|
+
{ "shelfNumber": 2, "antennaNo": [ 26 ] },
|
|
15703
|
+
{ "shelfNumber": 3, "antennaNo": [ 19, 20 ] },
|
|
15704
|
+
],
|
|
15705
|
+
},
|
|
15706
|
+
{
|
|
15707
|
+
"fixtureNumber": 20,
|
|
15708
|
+
"wallNumber": null,
|
|
15709
|
+
"readerId": "A4-E8-A3-91-7F-05",
|
|
15710
|
+
"storageBoxAntennaNo": [ 8, 2, 3 ],
|
|
15711
|
+
"shelfConfig": [
|
|
15712
|
+
{ "shelfNumber": 1, "antennaNo": [ 10, 11 ] },
|
|
15713
|
+
{ "shelfNumber": 2, "antennaNo": [ 7, 15 ] },
|
|
15714
|
+
{ "shelfNumber": 3, "antennaNo": [ 5, 16 ] },
|
|
15715
|
+
],
|
|
15716
|
+
},
|
|
15717
|
+
{
|
|
15718
|
+
"fixtureNumber": 21,
|
|
15719
|
+
"wallNumber": null,
|
|
15720
|
+
"readerId": "A4-E8-A3-91-7F-05",
|
|
15721
|
+
"storageBoxAntennaNo": [],
|
|
15722
|
+
"shelfConfig": [
|
|
15723
|
+
{ "shelfNumber": 1, "antennaNo": [ 12 ] },
|
|
15724
|
+
{ "shelfNumber": 2, "antennaNo": [ 9, 14 ] },
|
|
15725
|
+
{ "shelfNumber": 3, "antennaNo": [ 1, 13 ] },
|
|
15726
|
+
],
|
|
15727
|
+
},
|
|
15728
|
+
|
|
15729
|
+
];
|
|
15730
|
+
for ( const mappingData of antennaMapingData ) {
|
|
15731
|
+
try {
|
|
15732
|
+
const { fixtureNumber, readerId, storageBoxAntennaNo, shelfConfig } = mappingData;
|
|
15733
|
+
|
|
15734
|
+
const query = {
|
|
15735
|
+
storeName: storeName,
|
|
15736
|
+
fixtureNumber: fixtureNumber,
|
|
15737
|
+
};
|
|
15738
|
+
|
|
15739
|
+
const fixture = await storeFixtureService.findOne( query );
|
|
15740
|
+
|
|
15741
|
+
if ( !fixture ) {
|
|
15742
|
+
const errorMsg = `Fixture not found for storeName: ${storeName}, fixtureNumber: ${fixtureNumber}`;
|
|
15743
|
+
console.warn( errorMsg );
|
|
15744
|
+
errors.push( errorMsg );
|
|
15745
|
+
errorCount++;
|
|
15746
|
+
continue;
|
|
15747
|
+
}
|
|
15748
|
+
|
|
15749
|
+
const fixtureId = fixture._id;
|
|
15750
|
+
|
|
15751
|
+
if ( readerId ) {
|
|
15752
|
+
await storeFixtureService.updateOne(
|
|
15753
|
+
{ _id: fixtureId },
|
|
15754
|
+
{ $set: { readerId: readerId } },
|
|
15755
|
+
);
|
|
15756
|
+
console.log( `Updated fixture ${fixtureNumber} readerId:`, readerId );
|
|
15757
|
+
}
|
|
15758
|
+
|
|
15759
|
+
if ( storageBoxAntennaNo && Array.isArray( storageBoxAntennaNo ) && storageBoxAntennaNo.length > 0 ) {
|
|
15760
|
+
await storeFixtureService.updateOne(
|
|
15761
|
+
{ _id: fixtureId },
|
|
15762
|
+
{ 'footer.antennaNo': storageBoxAntennaNo },
|
|
15763
|
+
);
|
|
15764
|
+
console.log( `Updated fixture ${fixtureNumber} footer.antennaNo:`, storageBoxAntennaNo );
|
|
15765
|
+
}
|
|
15766
|
+
|
|
15767
|
+
if ( shelfConfig && Array.isArray( shelfConfig ) && shelfConfig.length > 0 ) {
|
|
15768
|
+
for ( const shelfMapping of shelfConfig ) {
|
|
15769
|
+
const { shelfNumber, antennaNo } = shelfMapping;
|
|
15770
|
+
|
|
15771
|
+
if ( !shelfNumber || !antennaNo || !Array.isArray( antennaNo ) ) {
|
|
15772
|
+
console.warn( `Invalid shelf config for fixture ${fixtureNumber}, shelf ${shelfNumber}` );
|
|
15773
|
+
continue;
|
|
15774
|
+
}
|
|
15775
|
+
|
|
15776
|
+
const shelf = await fixtureShelfService.findOne( {
|
|
15777
|
+
fixtureId: fixtureId,
|
|
15778
|
+
shelfNumber: shelfNumber,
|
|
15779
|
+
} );
|
|
15780
|
+
|
|
15781
|
+
if ( shelf ) {
|
|
15782
|
+
await fixtureShelfService.updateOne(
|
|
15783
|
+
{ _id: shelf._id },
|
|
15784
|
+
{ antennaNo: antennaNo },
|
|
15785
|
+
);
|
|
15786
|
+
console.log( `Updated fixture ${fixtureNumber}, shelf ${shelfNumber} with antennaNo:`, antennaNo );
|
|
15787
|
+
} else {
|
|
15788
|
+
const errorMsg = `Shelf not found for fixture ${fixtureNumber}, shelfNumber: ${shelfNumber}`;
|
|
15789
|
+
console.warn( errorMsg );
|
|
15790
|
+
errors.push( errorMsg );
|
|
15791
|
+
}
|
|
15792
|
+
}
|
|
15793
|
+
}
|
|
15794
|
+
|
|
15795
|
+
successCount++;
|
|
15796
|
+
} catch ( error ) {
|
|
15797
|
+
const errorMsg = `Error processing fixture ${mappingData.fixtureNumber}: ${error.message}`;
|
|
15798
|
+
console.error( errorMsg, error );
|
|
15799
|
+
errors.push( errorMsg );
|
|
15800
|
+
errorCount++;
|
|
15801
|
+
}
|
|
15802
|
+
}
|
|
15803
|
+
} catch ( e ) {
|
|
15804
|
+
logger.error( { functionName: 'insertAntennaMappingData', error: e } );
|
|
15805
|
+
return res.sendError( e.message || 'Internal Server Error', 500 );
|
|
15806
|
+
}
|
|
15807
|
+
}
|
|
15808
|
+
|
|
15809
|
+
// insertAntennaMappingData();
|
|
@@ -27,6 +27,8 @@ import * as fixtureConfigDuplicateService from '../service/fixtureConfigDuplicat
|
|
|
27
27
|
import * as planoVmDuplicateService from '../service/planoVmDuplicate.service.js';
|
|
28
28
|
import advancedFormat from 'dayjs/plugin/advancedFormat.js';
|
|
29
29
|
import * as planoRevisionService from '../service/planoRevision.service.js';
|
|
30
|
+
// import xlsx from 'xlsx';
|
|
31
|
+
// import fs from 'fs';
|
|
30
32
|
|
|
31
33
|
dayjs.extend( advancedFormat );
|
|
32
34
|
dayjs.extend( utc );
|
|
@@ -8011,69 +8013,87 @@ export async function updateProductMapping( req, res ) {
|
|
|
8011
8013
|
await Promise.all( storeDetails.map( async ( store ) => {
|
|
8012
8014
|
// let number = Number( store.storeName.replace( /\D/g, '' ) );
|
|
8013
8015
|
let getLatestData = await fetch( `${JSON.parse( process.env.LAMBDAURL )?.getRFIDDetails}/${store.storeName}`, { method: 'GET' } );
|
|
8014
|
-
|
|
8015
8016
|
if ( getLatestData.status == 200 ) {
|
|
8016
8017
|
let response = await getLatestData.json();
|
|
8017
|
-
|
|
8018
|
+
logger.error( { data: response } );
|
|
8019
|
+
// let data = response.mac_details.flatMap( ( ele ) => ele.body );
|
|
8018
8020
|
let mappingData = [];
|
|
8019
8021
|
let complianceData = [];
|
|
8020
|
-
|
|
8021
|
-
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8022
|
+
let excelData = [];
|
|
8023
|
+
for ( let macDetails of response?.mac_details ) {
|
|
8024
|
+
let fixtureDetails = await storeFixtureService.find( { readerId: macDetails?.MAC } );
|
|
8025
|
+
if ( fixtureDetails.length ) {
|
|
8026
|
+
let data = macDetails?.body ?? [];
|
|
8027
|
+
await Promise.all( data.map( async ( ele ) => {
|
|
8028
|
+
if ( ele?.data ) {
|
|
8029
|
+
let getShelfDetails = await fixtureShelfService.findOne( { fixtureId: { $in: fixtureDetails?.map( ( fixt ) => fixt._id ) }, antennaNo: { $in: [ ele?.data?.antenna ] } } );
|
|
8030
|
+
let fixtureShelfDetails;
|
|
8031
|
+
if ( !getShelfDetails ) {
|
|
8032
|
+
logger.error( { data: macDetails?.MAC } );
|
|
8033
|
+
fixtureShelfDetails = fixtureDetails.find( ( fixt ) => fixt?.footer?.antennaNo?.includes( ele.data.antenna ) );
|
|
8034
|
+
if ( fixtureDetails ) {
|
|
8035
|
+
getShelfDetails = { shelfType: 'storage' };
|
|
8036
|
+
}
|
|
8037
|
+
} else {
|
|
8038
|
+
fixtureShelfDetails = fixtureDetails.find( ( fixt ) => fixt._id.toString() == getShelfDetails.fixtureId.toString() );
|
|
8029
8039
|
}
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
|
|
8069
|
-
|
|
8040
|
+
logger.error( { data: fixtureShelfDetails, antennaNo: ele.data.antenna, macId: ele?.data?.MAC } );
|
|
8041
|
+
if ( getShelfDetails && fixtureShelfDetails ) {
|
|
8042
|
+
let productDetails = await planoProductService.findOne( { productId: ele.data.idText } );
|
|
8043
|
+
if ( productDetails ) {
|
|
8044
|
+
let data = {
|
|
8045
|
+
clientId: req.body.clientId,
|
|
8046
|
+
storeName: fixtureShelfDetails.storeName,
|
|
8047
|
+
storeId: fixtureShelfDetails.storeId,
|
|
8048
|
+
type: getShelfDetails?.shelfType != 'storage' ? 'product' : 'storageBox',
|
|
8049
|
+
productId: productDetails._id,
|
|
8050
|
+
pid: productDetails.productId,
|
|
8051
|
+
planoId: fixtureShelfDetails.planoId,
|
|
8052
|
+
floorId: fixtureShelfDetails.floorId,
|
|
8053
|
+
fixtureId: fixtureShelfDetails._id,
|
|
8054
|
+
...( getShelfDetails?.shelfType != 'storage' && { shelfId: getShelfDetails._id } ),
|
|
8055
|
+
};
|
|
8056
|
+
mappingData.push( data );
|
|
8057
|
+
|
|
8058
|
+
// let mappingDetails = await planoMappingService.create( data );
|
|
8059
|
+
|
|
8060
|
+
let productData = {
|
|
8061
|
+
'planoMappingId': '',
|
|
8062
|
+
'date': dayjs().format( 'YYYY-MM-DD' ),
|
|
8063
|
+
'clientId': req.body.clientId,
|
|
8064
|
+
'compliance': getShelfDetails?.shelfType != 'storage' ? getShelfDetails.productBrandName.includes( productDetails.brandName ) ? 'proper' : 'misplaced' : '',
|
|
8065
|
+
'fixtureId': fixtureShelfDetails._id,
|
|
8066
|
+
'floorId': fixtureShelfDetails.floorId,
|
|
8067
|
+
'planoId': fixtureShelfDetails.planoId,
|
|
8068
|
+
'productId': productDetails._id,
|
|
8069
|
+
'rfId': ele.data.idHex,
|
|
8070
|
+
'shelfId': getShelfDetails._id,
|
|
8071
|
+
'storeId': fixtureShelfDetails.storeId,
|
|
8072
|
+
'storeName': fixtureShelfDetails.storeName,
|
|
8073
|
+
'type': getShelfDetails?.shelfType != 'storage' ? 'product' : 'storageBox',
|
|
8074
|
+
};
|
|
8075
|
+
complianceData.push( productData );
|
|
8076
|
+
|
|
8077
|
+
|
|
8078
|
+
excelData.push( {
|
|
8079
|
+
fixtureId: fixtureShelfDetails._id.toString(),
|
|
8080
|
+
readerId: ele?.data?.MAC,
|
|
8081
|
+
antennaNo: ele.data.antenna,
|
|
8082
|
+
pid: ele.data.idText,
|
|
8083
|
+
productName: productDetails?.brandName,
|
|
8084
|
+
} );
|
|
8085
|
+
|
|
8086
|
+
// await planoComplianceService.create( productData );
|
|
8087
|
+
}
|
|
8070
8088
|
}
|
|
8071
8089
|
}
|
|
8072
|
-
}
|
|
8090
|
+
} ) );
|
|
8073
8091
|
}
|
|
8074
|
-
}
|
|
8092
|
+
}
|
|
8093
|
+
|
|
8094
|
+
// await Promise.all( response?.mac_details?.map( async ( macDetails ) => {
|
|
8095
|
+
// } ) );
|
|
8075
8096
|
await planoMappingService.deleteMany( { storeId: store.storeId } );
|
|
8076
|
-
console.log( mappingData, '@@mappingData' );
|
|
8077
8097
|
let mappingInsertData = await planoMappingService.insertMany( mappingData );
|
|
8078
8098
|
mappingInsertData = new Map( mappingInsertData.map( ( ele, index ) => [ index, ele ] ) );
|
|
8079
8099
|
let date = dayjs().format();
|
|
@@ -8081,8 +8101,12 @@ export async function updateProductMapping( req, res ) {
|
|
|
8081
8101
|
compliance.planoMappingId = mappingInsertData.get( index );
|
|
8082
8102
|
compliance.createdAt = date;
|
|
8083
8103
|
} );
|
|
8084
|
-
|
|
8085
8104
|
await planoComplianceService.insertMany( complianceData );
|
|
8105
|
+
// const ws = xlsx.utils.json_to_sheet( excelData );
|
|
8106
|
+
// const wb = xlsx.utils.book_new();
|
|
8107
|
+
// xlsx.utils.book_append_sheet( wb, ws, 'data' );
|
|
8108
|
+
// const buffer = xlsx.write( wb, { type: 'buffer', bookType: 'xlsx' } );
|
|
8109
|
+
// fs.writeFileSync( './items.xlsx', buffer );
|
|
8086
8110
|
}
|
|
8087
8111
|
} ) );
|
|
8088
8112
|
return res.sendSuccess( 'Updated successfully' );
|