Subversion Repositories SmartDukaan

Rev

Rev 37416 | Rev 37470 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23755 amit.gupta 1
package com.smartdukaan.cron;
23723 amit.gupta 2
 
32782 raveendra. 3
import com.smartdukaan.cron.migrations.RunOnceTasks;
4
import com.smartdukaan.cron.scheduled.*;
5
import com.smartdukaan.cron.scheduled.b2b.Listing;
36745 ranu 6
import com.smartdukaan.cron.scheduled.beatmiss.BeatMissDetectorRunner;
32782 raveendra. 7
import com.smartdukaan.cron.scheduled.leadsync.LeadSyncRunner;
32831 amit.gupta 8
import com.smartdukaan.cron.scheduled.ordertracking.OrderTrackingService;
33274 amit.gupta 9
import com.smartdukaan.cron.scheduled.purchaseorder.POScheduler;
34860 ranu 10
import com.smartdukaan.cron.scheduled.razorpay.FetchPartnersDisbursementTask;
36058 ranu 11
import com.smartdukaan.cron.scheduled.knowlarity.KnowlarityCallMonitorScheduler;
12
import com.spice.profitmandi.common.model.InvoicePdfModel;
34443 vikas.jang 13
import com.spice.profitmandi.common.model.ProfitMandiConstants;
32782 raveendra. 14
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
15
import com.spice.profitmandi.dao.repository.cs.CsService;
16
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
36035 amit 17
import com.spice.profitmandi.dao.service.shopify.ShopifyProductSyncService;
32782 raveendra. 18
import com.spice.profitmandi.dao.util.ContentPojoPopulator;
19
import com.spice.profitmandi.service.integrations.samsung.upgradeoffer.UpgradeOfferService;
36063 ranu 20
import com.spice.profitmandi.service.mail.MailOutboxService;
23723 amit.gupta 21
import org.apache.logging.log4j.LogManager;
22
import org.apache.logging.log4j.Logger;
28389 amit.gupta 23
import org.apache.velocity.app.VelocityEngine;
24
import org.apache.velocity.exception.VelocityException;
23898 amit.gupta 25
import org.springframework.beans.factory.annotation.Autowired;
26
import org.springframework.boot.ApplicationArguments;
27
import org.springframework.boot.ApplicationRunner;
23723 amit.gupta 28
import org.springframework.boot.WebApplicationType;
29
import org.springframework.boot.autoconfigure.SpringBootApplication;
30
import org.springframework.boot.builder.SpringApplicationBuilder;
31
import org.springframework.context.annotation.Bean;
32
import org.springframework.context.annotation.ComponentScan;
34554 tejus.loha 33
import org.springframework.context.annotation.EnableAspectJAutoProxy;
23935 amit.gupta 34
import org.springframework.context.annotation.Primary;
23723 amit.gupta 35
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
36
import org.springframework.core.io.ClassPathResource;
35393 amit 37
import org.springframework.core.io.Resource;
23906 amit.gupta 38
import org.springframework.mail.javamail.JavaMailSender;
37453 amit 39
import com.spice.profitmandi.common.services.AuthenticatedIdentityMailSender;
23906 amit.gupta 40
import org.springframework.mail.javamail.JavaMailSenderImpl;
28389 amit.gupta 41
import org.springframework.ui.velocity.VelocityEngineFactoryBean;
23723 amit.gupta 42
 
32782 raveendra. 43
import java.io.FileInputStream;
44
import java.io.IOException;
45
import java.time.LocalDate;
37058 amit 46
import java.time.LocalDateTime;
32782 raveendra. 47
import java.time.YearMonth;
48
import java.util.ArrayList;
49
import java.util.Arrays;
50
import java.util.List;
51
import java.util.Properties;
52
import java.util.stream.Collectors;
23724 amit.gupta 53
 
23723 amit.gupta 54
@SpringBootApplication
34554 tejus.loha 55
@EnableAspectJAutoProxy
23755 amit.gupta 56
@ComponentScan("com.smartdukaan.cron.*, com.spice.profitmandi.common.*")
24122 govind 57
public class Application implements ApplicationRunner {
58
 
31753 tejbeer 59
    private static final Logger LOGGER = LogManager.getLogger(Application.class);
24122 govind 60
 
31753 tejbeer 61
    @Autowired
62
    LeadSyncRunner leadSyncRunner;
30120 amit.gupta 63
 
31753 tejbeer 64
    @Autowired
65
    StandAlone standAlone;
30209 amit.gupta 66
 
31753 tejbeer 67
    @Autowired
68
    UpgradeOfferService upgradeOfferService;
27392 amit.gupta 69
 
31753 tejbeer 70
    @Autowired
71
    private TicketRelatedScheduledTask ticketRelatedScheduledTask;
28368 tejbeer 72
 
31753 tejbeer 73
    @Autowired
74
    private OnBoardingRelatedSchelduleTask onBoardingRelatedSchelduleTask;
28921 tejbeer 75
 
31753 tejbeer 76
    @Autowired
77
    private InvestmentRelatedTasks investmentRelatedTasks;
27392 amit.gupta 78
 
31753 tejbeer 79
    @Autowired
80
    private CsService csService;
29814 tejbeer 81
 
31753 tejbeer 82
    @Autowired
83
    private FofoOrderItemRepository fofoOrderItemRepository;
24603 amit.gupta 84
 
31753 tejbeer 85
    @Autowired
86
    private ContentPojoPopulator contentPojoPopulator;
29361 tejbeer 87
 
31753 tejbeer 88
    @Autowired
89
    private Listing listing;
24122 govind 90
 
32831 amit.gupta 91
    @Autowired
92
    OrderTrackingService orderTrackingService;
93
 
36306 amit 94
    @Autowired
95
    BatchScheduledTasks batchScheduledTasks;
96
 
36745 ranu 97
    @Autowired
98
    private BeatMissDetectorRunner beatMissDetectorRunner;
99
 
31753 tejbeer 100
    public static void main(String[] args) throws Throwable {
101
        try {
35803 amit 102
            WebApplicationType webType = WebApplicationType.SERVLET;
103
            for (String arg : args) {
104
                if (arg.contains("spring.main.web-application-type=none")) {
105
                    webType = WebApplicationType.NONE;
106
                    break;
107
                }
108
            }
109
            new SpringApplicationBuilder(Application.class)
110
                    .web(webType)
111
                    .run(args);
31753 tejbeer 112
        } catch (Throwable t) {
113
            t.printStackTrace();
114
        }
115
    }
28389 amit.gupta 116
 
31753 tejbeer 117
    @Bean
118
    public static PropertySourcesPlaceholderConfigurer propertyConfigurer1() {
119
        LOGGER.info("Called Configuration");
120
        PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
35393 amit 121
 
35832 amit 122
        String activeProfile;
123
        Properties properties = new Properties();
124
        try {
125
            properties.load(Application.class.getClassLoader().getResourceAsStream("META-INF/env.property"));
126
        } catch (IOException e) {
127
            LOGGER.error("Error reading env.property, defaulting to dev: " + e);
128
            properties.put("profile", "dev");
129
        }
130
        activeProfile = (String) properties.get("profile");
35393 amit 131
 
35832 amit 132
        Resource appResource;
133
        Resource sharedResource;
134
 
135
        if ("prod".equals(activeProfile)) {
136
            appResource = new ClassPathResource("/META-INF/prod.properties");
137
            sharedResource = new ClassPathResource("/shared-prod.properties");
138
        } else if ("staging".equals(activeProfile)) {
139
            appResource = new ClassPathResource("/META-INF/staging.properties");
140
            sharedResource = new ClassPathResource("/shared-staging.properties");
141
        } else {
142
            appResource = new ClassPathResource("/META-INF/dev.properties");
143
            sharedResource = new ClassPathResource("/shared-dev.properties");
144
        }
145
 
146
        LOGGER.info("Cron loading profile: " + activeProfile);
147
        propertySourcesPlaceholderConfigurer.setLocations(sharedResource, appResource);
35393 amit 148
        propertySourcesPlaceholderConfigurer.setIgnoreResourceNotFound(true);
149
 
31753 tejbeer 150
        return propertySourcesPlaceholderConfigurer;
151
    }
28389 amit.gupta 152
 
31753 tejbeer 153
    @Bean(name = "veloctyEngine")
154
    public VelocityEngine velocityEngine() throws VelocityException, IOException {
155
        VelocityEngineFactoryBean factory = new VelocityEngineFactoryBean();
28389 amit.gupta 156
 
31753 tejbeer 157
        Properties velocityProperties = new Properties();
158
        velocityProperties.put("resource.loader", "class");
159
        velocityProperties.put("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
160
        velocityProperties.put("file.resource.loader.cache", true);
161
        velocityProperties.put("file.resource.loader.unicode", true);
162
        velocityProperties.put("input.encoding", "UTF-8");
163
        velocityProperties.put("output.encoding", "UTF-8");
164
        velocityProperties.put("response.encoding", "UTF-8");
165
        velocityProperties.put("overrideLogging", true);
28389 amit.gupta 166
 
31753 tejbeer 167
        // velocityProperties.put("file.resource.loader.path", ".");
28389 amit.gupta 168
 
31753 tejbeer 169
        factory.setVelocityProperties(velocityProperties);
28389 amit.gupta 170
 
31753 tejbeer 171
        return factory.createVelocityEngine();
23723 amit.gupta 172
 
31753 tejbeer 173
    }
24122 govind 174
 
34668 amit.gupta 175
    @Bean(name = "mailSender")
31753 tejbeer 176
    @Primary
177
    public JavaMailSender sendGridMailSender() {
178
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
24122 govind 179
 
31753 tejbeer 180
        // Using gmail
181
        mailSender.setHost("smtp.sendgrid.net");
182
        mailSender.setPort(587);
183
        mailSender.setUsername("apikey");
34668 amit.gupta 184
        mailSender.setPassword("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");
24122 govind 185
 
31753 tejbeer 186
        Properties javaMailProperties = new Properties();
187
        javaMailProperties.put("mail.smtp.starttls.enable", "false");
188
        javaMailProperties.put("mail.smtp.auth", "true");
189
        javaMailProperties.put("mail.transport.protocol", "smtp");
37228 vikas 190
        javaMailProperties.put("mail.smtp.connectiontimeout", "300000");
191
        javaMailProperties.put("mail.smtp.timeout", "300000");
192
        javaMailProperties.put("mail.smtp.writetimeout", "300000");
24122 govind 193
 
31753 tejbeer 194
        mailSender.setJavaMailProperties(javaMailProperties);
195
        return mailSender;
34632 ranu 196
    }
23935 amit.gupta 197
 
31753 tejbeer 198
    @Bean
199
    public JavaMailSender googleMailSender() {
37453 amit 200
        JavaMailSenderImpl mailSender = new AuthenticatedIdentityMailSender();
34612 ranu 201
        mailSender.setHost("smtp.gmail.com");
202
        mailSender.setPort(465);
203
        mailSender.setUsername("sdtech@smartdukaan.com");
37369 amit 204
        mailSender.setPassword("wbdwyqrcgosrkwdn"); // App Password
34612 ranu 205
 
206
        Properties props = mailSender.getJavaMailProperties();
207
        props.put("mail.smtp.auth", "true");
208
        props.put("mail.smtp.ssl.enable", "true");
209
        props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
210
        props.put("mail.smtp.socketFactory.port", "465");
211
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
37368 amit 212
        props.put("mail.smtp.connectiontimeout", "30000");
213
        props.put("mail.smtp.timeout", "120000");
214
        props.put("mail.smtp.writetimeout", "120000");
34612 ranu 215
 
216
        return mailSender;
217
    }
218
 
36248 amit 219
    @Bean(name = "gmailRelaySender")
220
    public JavaMailSender getGmailRelaySender() {
221
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
222
        mailSender.setHost("smtp-relay.gmail.com");
223
        mailSender.setPort(587);
224
 
225
        Properties props = mailSender.getJavaMailProperties();
226
        props.put("mail.smtp.starttls.enable", "true");
227
        props.put("mail.smtp.auth", "false");
228
        props.put("mail.smtp.localhost", "smartdukaan.com");
229
        props.put("mail.smtp.ssl.protocols", "TLSv1.2");
230
        props.put("mail.smtp.ssl.trust", "smtp-relay.gmail.com");
231
        props.put("mail.transport.protocol", "smtp");
37368 amit 232
        props.put("mail.smtp.connectiontimeout", "30000");
233
        props.put("mail.smtp.timeout", "120000");
234
        props.put("mail.smtp.writetimeout", "120000");
36248 amit 235
 
236
        return mailSender;
237
    }
238
 
31753 tejbeer 239
    @Autowired
240
    private RunOnceTasks runOnceTasks;
24122 govind 241
 
31753 tejbeer 242
    @Autowired
243
    private ScheduledTasks scheduledTasks;
30335 amit.gupta 244
 
31753 tejbeer 245
    @Autowired
34306 ranu 246
    private ScheduledTasksTest scheduledTasksTest;
247
 
248
    @Autowired
34860 ranu 249
    private FetchPartnersDisbursementTask fetchPartnersDisbursementTask;
250
 
251
    @Autowired
31753 tejbeer 252
    private Reconciliation reconciliation;
30309 amit.gupta 253
 
31753 tejbeer 254
    @Autowired
36511 amit 255
    private WarehouseStockReconciliation warehouseStockReconciliation;
256
 
257
    @Autowired
37159 amit 258
    private PartnerIdentityIntegrityMonitor partnerIdentityIntegrityMonitor;
259
 
260
    @Autowired
35250 amit 261
    private Migrations migrations;
262
 
263
    @Autowired
31753 tejbeer 264
    CaptchaService captchaService;
28921 tejbeer 265
 
33274 amit.gupta 266
    @Autowired
267
    POScheduler poScheduler;
32878 amit.gupta 268
 
35929 vikas 269
    @Autowired
270
    ShopifyProductSyncService shopifyProductSyncService;
33274 amit.gupta 271
 
36058 ranu 272
    @Autowired
273
    KnowlarityCallMonitorScheduler knowlarityCallMonitorScheduler;
35929 vikas 274
 
36063 ranu 275
    @Autowired
276
    MailOutboxService mailOutboxService;
277
 
31753 tejbeer 278
    @Override
279
    public void run(ApplicationArguments args) throws Exception {
32008 amit.gupta 280
        //scheduledTasks.test();
281
        //System.exit();
31753 tejbeer 282
        LOGGER.info("Called run method");
36058 ranu 283
 
284
        // Knowlarity Call Monitor - Manual trigger (if 10 AM scheduled start was missed)
285
        // This just starts the monitor; scheduled healthCheck and stopMonitoring will still work
286
        if (args.containsOption("startKnowlarityMonitor")) {
287
            LOGGER.info("Starting Knowlarity Call Monitor manually...");
288
            knowlarityCallMonitorScheduler.startMonitoring();
289
            LOGGER.info("Knowlarity Call Monitor started. Scheduled tasks will handle health checks and 10 PM stop.");
290
            // No sleep needed - Spring scheduler keeps app running and handles 10 PM stop
291
        }
36545 ranu 292
        if (args.containsOption("trackingReport")) {
293
            runOnceTasks.dailyTrackingReport();
294
        }
36058 ranu 295
        if (args.containsOption("stopKnowlarityMonitor")) {
296
            LOGGER.info("Stopping Knowlarity Call Monitor...");
297
            knowlarityCallMonitorScheduler.stopMonitoring();
298
        }
36115 ranu 299
        // Knowlarity - Request fresh snapshot manually (when status not updating)
300
        if (args.containsOption("refreshKnowlaritySnapshot")) {
301
            LOGGER.info("Requesting Knowlarity snapshot manually...");
302
            knowlarityCallMonitorScheduler.healthCheck();
303
            LOGGER.info("Knowlarity snapshot requested.");
304
            System.exit(0);
305
        }
36058 ranu 306
 
33260 amit.gupta 307
        if (args.containsOption("removePartialBillingForTransaction")) {
308
            if (args.containsOption("trId")) {
33051 amit.gupta 309
                int transactionId = Integer.parseInt(args.getOptionValues("trId").get(0));
33054 amit.gupta 310
                scheduledTasks.removePartialBillingForTransaction(transactionId);
33051 amit.gupta 311
            }
312
            System.exit(0);
313
        }
34523 ranu 314
        if (args.containsOption("createOpeningStockPartyWise")) {
315
            scheduledTasks.createOpeningStockPartyWise();
316
            System.exit(0);
317
        }
31753 tejbeer 318
        if (args.containsOption("tc")) {
319
            System.out.println("Toffee service called");
320
            scheduledTasks.toffeeRollback();
321
            System.exit(0);
322
        }
323
        if (args.containsOption("bag")) {
324
            System.out.println("Bag service called");
325
            runOnceTasks.testBag();
326
            System.exit(0);
327
        }
29814 tejbeer 328
 
31753 tejbeer 329
        if (args.containsOption("rw")) {
330
            System.out.println("Reverse wallet");
331
            scheduledTasks.reverseWallet();
332
            System.exit(0);
333
        }
334
        if (args.containsOption("sendIndentTertiary")) {
335
            System.out.println("sendIndentTertiary");
336
            scheduledTasks.sendIndentTertiary();
337
            System.exit(0);
338
        }
339
        if (args.containsOption("checkPartnerActiveStore")) {
340
            System.out.println("checkPartnerActiveStore");
341
            scheduledTasks.checkPartnerActiveStore();
342
            System.exit(0);
343
        }
37172 amit 344
        if (args.containsOption("updatePjpAgendaInstances")) {
345
            System.out.println("updatePjpAgendaInstances");
346
            scheduledTasks.updatePjpAgendaInstances();
347
            System.exit(0);
348
        }
37040 ranu 349
        if (args.containsOption("updatePartnerActivationTypeByMonthlySale")) {
350
            System.out.println("updatePartnerActivationTypeByMonthlySale");
351
            scheduledTasks.updatePartnerActivationTypeByMonthlySale();
352
            System.exit(0);
353
        }
29800 manish 354
 
31753 tejbeer 355
        if (args.containsOption("selectFinServiceFollowUpDateByCurrDate")) {
356
            System.out.println("selectfinServiceFollowUpDateByCurrDate");
28368 tejbeer 357
 
31753 tejbeer 358
            scheduledTasks.selectFinServiceFollowUpDateByCurrDate(LocalDate.now());
359
            System.exit(0);
360
        }
25073 amit.gupta 361
 
31753 tejbeer 362
        if (args.containsOption("addHdfcPayment")) {
363
            runOnceTasks.addPayment();
364
            System.exit(0);
365
        }
35250 amit 366
        if (args.containsOption("migrateOriginalInventoryItemId")) {
367
            int batchSize = 10_000;
368
            if (args.containsOption("batchSize")) {
369
                try {
370
                    batchSize = Integer.parseInt(args.getOptionValues("batchSize").get(0));
371
                } catch (Exception e) {
372
                    LOGGER.warn("Invalid batchSize provided, defaulting to {}", batchSize);
373
                }
374
            }
375
            LOGGER.info("Starting migration for warehouse.inventoryItem.originalInventoryItemId with batchSize={}", batchSize);
36003 aman 376
            //migrations.migrateWarehouseOriginalInventoryItemId(batchSize);
35250 amit 377
            LOGGER.info("Migration completed.");
378
            System.exit(0);
379
        }
31753 tejbeer 380
        if (args.containsOption("processSchemeOut")) {
381
            System.out.println("Process schemeOut");
382
            int orderId = Integer.parseInt(args.getOptionValues("orderid").get(0));
383
            int fofoId = Integer.parseInt(args.getOptionValues("fofoid").get(0));
384
            runOnceTasks.processSchemeOut(fofoId, orderId);
385
            System.exit(0);
386
        }
387
        if (args.containsOption("at")) {
388
            System.out.println("Toffee service called");
389
            ticketRelatedScheduledTask.alertforTicket();
390
            System.exit(0);
391
        }
392
        if (args.containsOption("et")) {
393
            ticketRelatedScheduledTask.escalateTicket();
394
            ;
395
            System.exit(0);
396
        }
397
        if (args.containsOption("sr")) {
398
            List<String> schemeIds = args.getOptionValues("schemeId");
399
            System.out.println(schemeIds);
400
            scheduledTasks.schemeRollback(schemeIds);
401
            System.exit(0);
402
        }
403
        if (args.containsOption("processActivation")) {
404
            scheduledTasks.processActivation();
405
            System.exit(0);
406
        }
407
        if (args.containsOption("sendAttendanceMorningAlert")) {
408
            scheduledTasks.sendAttendanceMorningAlert();
409
            System.exit(0);
410
        }
411
        if (args.containsOption("sendAttendanceEveningAlert")) {
412
            scheduledTasks.sendAttendanceEveningAlert();
413
            System.exit(0);
414
        }
25721 tejbeer 415
 
31753 tejbeer 416
        if (args.containsOption("checkRazorPayPaymentStatus")) {
417
            scheduledTasks.checkRazorPayPaymentStatus();
418
            System.exit(0);
419
        }
420
        if (args.containsOption("grouping")) {
421
            scheduledTasks.grouping();
422
            System.exit(0);
423
        }
424
        if (args.containsOption("fixWallet")) {
425
            runOnceTasks.fixWallet();
426
            System.exit(0);
427
        }
36511 amit 428
        if (args.containsOption("reconcileInventorySnapshot")) {
429
            warehouseStockReconciliation.reconcile();
430
            System.exit(0);
431
        }
37159 amit 432
        if (args.containsOption("partnerIdentityIntegrityMonitor")) {
433
            partnerIdentityIntegrityMonitor.monitor();
434
            System.exit(0);
435
        }
31753 tejbeer 436
        if (args.containsOption("reconcileExpiredFixedSchemes")) {
437
            reconciliation.reconcileExpiredFixedSchemes();
438
            System.exit(0);
439
        }
440
        if (args.containsOption("dailyReconciliation")) {
441
            if (args.containsOption("date")) {
442
                LocalDate date = LocalDate.parse(args.getOptionValues("date").get(0));
443
                reconciliation.dailyReconciliation(date);
444
            } else {
445
                reconciliation.dailyReconciliation(LocalDate.now().minusDays(1));
446
            }
447
            System.exit(0);
448
        }
449
        /*
450
         * if (args.containsOption("test")) { schemeService.processSchemeIn(9243,
451
         * 175138102); throw new Exception(); }
452
         */
28921 tejbeer 453
 
31753 tejbeer 454
        if (args.containsOption("sendNotification")) {
455
            scheduledTasks.sendNotification();
456
            System.exit(0);
457
        }
26291 tejbeer 458
 
36063 ranu 459
        if (args.containsOption("processPendingMails")) {
460
            System.out.println("Processing pending mails...");
461
            mailOutboxService.processPendingMails();
462
            System.exit(0);
463
        }
464
 
31753 tejbeer 465
        if (args.containsOption("ticketClosed")) {
35568 amit 466
            // Redirected to TicketRelatedScheduledTask which handles auto-close as part of escalateTicket
467
            ticketRelatedScheduledTask.escalateTicket();
31753 tejbeer 468
            System.exit(0);
469
        }
28207 tejbeer 470
 
31753 tejbeer 471
        if (args.containsOption("getVendorWarehouses")) {
472
            int warehouseId = Integer.parseInt(args.getOptionValues("warehouseId").get(0));
473
            scheduledTasks.getVendorWarehouses(warehouseId);
474
            System.exit(0);
475
        }
29776 tejbeer 476
 
31753 tejbeer 477
        if (args.containsOption("checkfocusedModelInPartnerStock")) {
34344 amit.gupta 478
            try {
479
                scheduledTasks.checkfocusedModelInPartnerStock();
480
            } finally {
481
                System.exit(0);
482
            }
31753 tejbeer 483
        }
29451 manish 484
 
31753 tejbeer 485
        if (args.containsOption("checkImeiActivation")) {
486
            scheduledTasks.checkImeiActivation();
487
            System.exit(0);
488
        }
29776 tejbeer 489
 
31753 tejbeer 490
        if (args.containsOption("checkTecnoImeiActivation")) {
29776 tejbeer 491
 
31753 tejbeer 492
            LocalDate dateTechno = LocalDate.now();
29532 manish 493
 
31753 tejbeer 494
            int days = 25;
495
            if (args.containsOption("days")) {
496
                days = Integer.parseInt(args.getOptionValues("days").get(0));
497
            }
498
            scheduledTasks.checkTecnoImeiActivation(dateTechno, days);
499
            System.exit(0);
500
        }
28921 tejbeer 501
 
31753 tejbeer 502
        if (args.containsOption("checkItelImeiActivation")) {
503
            LocalDate dateItel = LocalDate.now();
504
            int days = 25;
505
            if (args.containsOption("days")) {
506
                days = Integer.parseInt(args.getOptionValues("days").get(0));
507
            }
508
            scheduledTasks.checkItelImeiActivation(dateItel, days);
509
            System.exit(0);
510
        }
28921 tejbeer 511
 
31753 tejbeer 512
        if (args.containsOption("partnerProblemAlert")) {
513
            scheduledTasks.partnerProblemAlert();
514
            System.exit(0);
515
        }
516
        if (args.containsOption("notify")) {
517
            if (args.containsOption("fofoId")) {
518
                int fofoId = Integer.parseInt(args.getOptionValues("fofoId").get(0));
519
                scheduledTasks.sendDailySalesNotificationToPartner(fofoId);
520
            }
521
            System.exit(0);
522
        }
523
        if (args.containsOption("findMismatchesInIndent")) {
524
            runOnceTasks.findMismatchesInIndent();
525
            System.exit(0);
526
        }
29035 tejbeer 527
 
31753 tejbeer 528
        if (args.containsOption("onboardingEventDelays")) {
529
            onBoardingRelatedSchelduleTask.onboardingEventDelays();
530
            System.exit(0);
531
        }
28982 tejbeer 532
 
31753 tejbeer 533
        if (args.containsOption("onBoardingCompleteEventEmail")) {
534
            onBoardingRelatedSchelduleTask.onBoardingCompleteEventEmail();
535
            System.exit(0);
536
        }
28921 tejbeer 537
 
31753 tejbeer 538
        if (args.containsOption("onBoardingDocumentsPending")) {
539
            onBoardingRelatedSchelduleTask.onBoardingDocumentsPending();
540
            System.exit(0);
541
        }
542
        if (args.containsOption("onBoardingMigration")) {
543
            onBoardingRelatedSchelduleTask.onBoardingMigration();
544
            System.exit(0);
545
        }
28921 tejbeer 546
 
33859 tejus.loha 547
//        if (args.containsOption("advancePaymentPendingAlert")) {
548
//            onBoardingRelatedSchelduleTask.advancePaymentPendingAlert();
549
//            System.exit(0);
550
//        }
28963 tejbeer 551
 
31753 tejbeer 552
        if (args.containsOption("fullPaymentPendingAlert")) {
553
            onBoardingRelatedSchelduleTask.fullPaymentPendingAlert();
554
            System.exit(0);
555
        }
29308 tejbeer 556
 
33859 tejus.loha 557
//        if (args.containsOption("advancePaymentPendinglegalAlert")) {
558
//            onBoardingRelatedSchelduleTask.advancePaymentPendinglegalAlert();
559
//            System.exit(0);
560
//        }
31117 tejbeer 561
 
31753 tejbeer 562
        if (args.containsOption("markDelhiveryOrderDelivered")) {
32831 amit.gupta 563
            orderTrackingService.markDelhiveryOrderDelivered();
31753 tejbeer 564
            System.exit(0);
565
        }
32831 amit.gupta 566
 
31753 tejbeer 567
        if (args.containsOption("markBlueDartOrderDelivered")) {
32794 raveendra. 568
            System.out.println("Marking BlueDart Order Delivered...");
32831 amit.gupta 569
            orderTrackingService.markBlueDartOrderDelivered();
31753 tejbeer 570
            System.exit(0);
571
        }
572
        if (args.containsOption("mergingdata")) {
573
            onBoardingRelatedSchelduleTask.mergingdata();
574
            System.exit(0);
575
        }
576
        if (args.containsOption("brandingAlert")) {
577
            onBoardingRelatedSchelduleTask.brandingAlert();
578
            System.exit(0);
579
        }
31089 amit.gupta 580
 
33859 tejus.loha 581
//        if (args.containsOption("storeTimelinePromoterPending")) {
582
//            onBoardingRelatedSchelduleTask.storeTimelinePromoterPending();
583
//            System.exit(0);
584
//        }
31249 tejbeer 585
 
31753 tejbeer 586
        if (args.containsOption("ppl")) {
587
            runOnceTasks.printPendingLeads();
588
            System.exit(0);
589
        }
31249 tejbeer 590
 
31753 tejbeer 591
        if (args.containsOption("notifyAll")) {
592
            scheduledTasks.sendDailySalesNotificationToPartner(null);
593
            System.exit(0);
594
        }
31249 tejbeer 595
 
31753 tejbeer 596
        if (args.containsOption("monthlyTargetForInternalTeam")) {
597
            scheduledTasks.monthlyTargetForInternalTeam();
598
            System.exit(0);
599
        }
31249 tejbeer 600
 
31753 tejbeer 601
        if (args.containsOption("monthlyTargetForPartner")) {
602
            scheduledTasks.monthlyTargetForPartner();
603
            System.exit(0);
604
        }
33444 ranu 605
        if (args.containsOption("findAllLiveDemoBrandItemsByBillingDate")) {
606
            scheduledTasks.findAllLiveDemoBrandItemsByBillingDate();
607
            System.exit(0);
608
        }
33464 ranu 609
        if (args.containsOption("findTodayPocoBillingItems")) {
610
            scheduledTasks.findTodayPocoBillingItems();
611
            System.exit(0);
612
        }
28921 tejbeer 613
 
31753 tejbeer 614
        if (args.containsOption("hygineAlertForPartner")) {
615
            scheduledTasks.hygineAlertForPartner();
616
            System.exit(0);
617
        }
28921 tejbeer 618
 
31753 tejbeer 619
        if (args.containsOption("hygineAlertForInternalTeam")) {
620
            scheduledTasks.hygineAlertForInternalTeam();
621
            System.exit(0);
622
        }
623
 
32214 jai.hind 624
        if (args.containsOption("checkItelImeiActivationNew")) {
625
            scheduledTasks.checkItelImeiActivationNew(LocalDate.now(), 15);
626
            System.exit(0);
627
        }
31753 tejbeer 628
        if (args.containsOption("once")) {
33274 amit.gupta 629
 
630
            if (args.containsOption("autoClosePurchaseOrders")) {
631
                poScheduler.autoClosePurchaseOrders();
632
            }
31753 tejbeer 633
            if (args.containsOption("cancelOnceAssist")) {
634
                if (args.containsOption("invoiceNumber")) {
635
                    String oneAssistInvoiceNumber = args.getOptionValues("invoiceNumber").get(0);
636
                    runOnceTasks.cancelOnceAssist(oneAssistInvoiceNumber);
637
                }
638
 
35266 ranu 639
 
31753 tejbeer 640
            }
34208 ranu 641
            if (args.containsOption("cancelOnceAssist")) {
642
                if (args.containsOption("MemberShipNumber")) {
643
                    String applicationNo = args.getOptionValues("applicationNo").get(0);
644
                    String membershipId = args.getOptionValues("membershipId").get(0);
645
                    runOnceTasks.cancelOnceAssistByMemberShipNumber(applicationNo, membershipId);
646
                }
647
 
648
            }
33260 amit.gupta 649
            if (args.containsOption("changeFulfillmentWarehouse")) {
650
                if (args.containsOption("orderId") && args.containsOption("whId")) {
35277 amit 651
                    List<Integer> orderIds = Arrays.stream(args.getOptionValues("orderId").get(0).split(","))
652
                            .map(String::trim)
653
                            .map(Integer::parseInt)
654
                            .collect(Collectors.toList());
655
 
35276 amit 656
                    int warehouseId = Integer.parseInt(args.getOptionValues("whId").get(0));
657
                    for (Integer orderId : orderIds) {
658
                        runOnceTasks.changeFulfillmentWarehouse(orderId, warehouseId);
659
                    }
33260 amit.gupta 660
                }
661
                System.exit(0);
662
            }
31753 tejbeer 663
            if (args.containsOption("1")) {
664
                if (args.containsOption("test")) {
31618 amit.gupta 665
                    //scheduledTasks.sendPartnerInvestmentDetails(args.getOptionValues("email"));
31753 tejbeer 666
                    System.out.println("Calling test method");
36003 aman 667
                    try {
668
                        scheduledTasks.test();
669
                    } catch (Throwable e) {
670
                        throw new RuntimeException(e);
671
                    }
35165 amit 672
                    System.exit(0);
32083 tejbeer 673
 
674
                    if (args.containsOption("migrateVendorItemPricing")) {
675
                        scheduledTasks.migrateVendorItemPricing();
676
                        System.exit(0);
677
                    }
678
 
679
                    if (args.containsOption("approveVendorCatalogPricing")) {
680
                        scheduledTasks.approveVendorCatalogPricing();
681
                        System.exit(0);
682
                    }
32080 tejbeer 683
                } else if (args.containsOption("test1")) {
32008 amit.gupta 684
                    scheduledTasks.test1();
34845 ranu 685
                } else if (args.containsOption("scheduleTaskTest1")) {
686
 
687
                    scheduledTasksTest.test();
688
                }else if (args.containsOption("generateBiReport")) {
689
                    scheduledTasksTest.generateBiReport();
34945 ranu 690
                }else if (args.containsOption("abmSendertest")) {
34946 ranu 691
                    runOnceTasks.setAbmReportSender();
35788 vikas 692
                }else if (args.containsOption("syncProductsToShopify")) {
36058 ranu 693
                    shopifyProductSyncService.syncByWarehouse(ProfitMandiConstants.WAREHOUSE_NAME_MAP.get("UP-WEST/NOIDA"));
34321 ranu 694
                }
34860 ranu 695
                else if (args.containsOption("fetchPartnerDisburseMentTask")) {
696
                    if(args.containsOption("fetchDisbursements")){
697
                        fetchPartnersDisbursementTask.fetchDisbursementsTest();
698
                    }
699
                    else if(args.containsOption("creditAmountTest")){
700
                        fetchPartnersDisbursementTask.creditAmountTest();
701
                    }
702
                    else if(args.containsOption("createContactsAndFundsForFranchiseeTest")){
703
                        fetchPartnersDisbursementTask.createContactsAndFundsForFranchiseeTest();
704
                    }
705
                    else if(args.containsOption("rabbitTransactionProducertest")){
706
                        fetchPartnersDisbursementTask.rabbitTransactionProducertest();
707
                    }
34879 ranu 708
                    else if(args.containsOption("sendingDisbursementMail")){
709
                        fetchPartnersDisbursementTask.sendingDisbursementMail();
710
                    }
34860 ranu 711
                    else {
712
                        fetchPartnersDisbursementTask.test();
713
                    }
714
                }
34845 ranu 715
                else if (args.containsOption("testNew1")) {
34307 ranu 716
                    List<String> loanIdArgs = args.getOptionValues("loanIds");  // ["34833,36536,37151"]
717
                    List<Integer> loanIds = new ArrayList<>();
718
 
719
                    if (loanIdArgs != null && !loanIdArgs.isEmpty()) {
720
                        String csv = loanIdArgs.get(0);
721
                        loanIds = Arrays.stream(csv.split(","))
722
                                .map(String::trim)
723
                                .map(Integer::parseInt)
724
                                .collect(Collectors.toList());
725
                    }
34321 ranu 726
                    scheduledTasksTest.findLoanTransactionMapingAccordingLoan(loanIds);
34309 ranu 727
                } else if (args.containsOption("testNew2")) {
34308 ranu 728
                    if (args.containsOption("createLoan")) {
729
                        // Extract each parameter
730
                        int transactionId = 0;
731
                        double invoiceAmount = 0.0;
732
                        String invoiceNumber = "";
733
 
734
                        if (args.containsOption("transactionId")) {
735
                            transactionId = Integer.parseInt(args.getOptionValues("transactionId").get(0));
736
                        }
737
 
738
                        if (args.containsOption("invoiceAmount")) {
739
                            invoiceAmount = Double.parseDouble(args.getOptionValues("invoiceAmount").get(0));
740
                        }
741
 
742
                        if (args.containsOption("invoiceNumber")) {
743
                            invoiceNumber = args.getOptionValues("invoiceNumber").get(0);
744
                        }
745
 
746
                        // Call your method
747
                        scheduledTasksTest.createLoanForBillingByTransactionIdAndInvoiceNumber(transactionId, invoiceAmount, invoiceNumber);
748
                    }
749
 
32482 amit.gupta 750
                } else {
31753 tejbeer 751
                    System.out.println("Called sendPartnerInvestmentDetails");
752
                    scheduledTasks.sendPartnerInvestmentDetails();
753
                }
754
                System.exit(0);
755
            }
756
            if (args.containsOption("2")) {
757
                if (args.containsOption("test")) {
758
                    String[] emails = new String[args.getOptionValues("email").size()];
759
                    scheduledTasks.sendAgeingReport(args.getOptionValues("email").toArray(emails));
760
                } else {
761
                    scheduledTasks.sendAgeingReport();
762
                }
763
                System.exit(0);
764
            }
33457 amit.gupta 765
 
31753 tejbeer 766
            if (args.containsOption("cancelOrder")) {
767
                List<String> invoiceNumbers = args.getOptionValues("invoiceNumber");
768
                runOnceTasks.cancelOrder(invoiceNumbers);
769
            }
36554 amit 770
            if (args.containsOption("postCreditNoteForDuplicateInvoice")) {
771
                String duplicateInvoice = args.getOptionValues("duplicateInvoice").get(0);
772
                String activeInvoice = args.getOptionValues("activeInvoice").get(0);
773
                runOnceTasks.postCreditNoteForDuplicateInvoice(duplicateInvoice, activeInvoice);
774
            }
31753 tejbeer 775
            if (args.containsOption("migratePurchase")) {
776
                runOnceTasks.migratePurchase();
777
            }
778
            if (args.containsOption("migratepd")) {
779
                scheduledTasks.moveImeisToPriceDropImeis();
780
            }
781
            if (args.containsOption("walletmismatch")) {
782
                scheduledTasks.walletmismatch();
783
            }
784
            if (args.containsOption("schemewalletmismatch")) {
785
                scheduledTasks.schemewalletmismatch();
786
            }
787
            if (args.containsOption("gst")) {
788
                scheduledTasks.gst();
789
            }
790
            if (args.containsOption("mailDashboardScreenshots")) {
791
                runOnceTasks.mailDashboardScreenshots();
792
            }
793
            if (args.containsOption("notifyLead")) {
794
                scheduledTasks.notifyLead();
795
                scheduledTasks.notifyVisits();
796
            }
797
            if (args.containsOption("fixgrn")) {
798
                runOnceTasks.fixGrn();
799
            }
800
            if (args.containsOption("pbfix")) {
801
                runOnceTasks.pbfix();
802
            }
803
            if (args.containsOption("mongom")) {
804
                runOnceTasks.mongom();
805
            }
806
            if (args.containsOption("processPd")) {
807
                int priceDropId = Integer.parseInt(args.getOptionValues("processPd").get(0));
808
                runOnceTasks.processPd(priceDropId);
809
            }
810
            if (args.containsOption("samsung")) {
811
                if (args.containsOption("ym")) {
812
                    int ym = Integer.parseInt(args.getOptionValues("ym").get(0));
813
                    runOnceTasks.fetchImeiActivation(ym);
814
                }
815
                runOnceTasks.fetchImeiActivation(0);
816
            }
817
            if (args.containsOption("fixdupimeigrn")) {
818
                runOnceTasks.fixDupGrns();
819
            }
820
            if (args.containsOption("cancel")) {
36053 amit 821
                boolean recreatePri = args.containsOption("recreatePri");
822
                runOnceTasks.cancelDn(args.getOptionValues("dn").get(0), recreatePri);
31753 tejbeer 823
            }
824
            if (args.containsOption("fixScheme")) {
825
                runOnceTasks.fixScheme();
826
            }
827
            if (args.containsOption("syncLeads")) {
828
                leadSyncRunner.syncLeads();
829
            }
830
            if (args.containsOption("testCs")) {
831
                int category = Integer.parseInt(args.getOptionValues("category").get(0));
832
                EscalationType escalationType = EscalationType.valueOf(args.getOptionValues("escalation").get(0));
833
                int fofoId = Integer.parseInt(args.getOptionValues("fofoid").get(0));
834
                csService.getAuthUserId(category, escalationType, fofoId);
835
            }
836
            if (args.containsOption("duporder")) {
837
                runOnceTasks.removeDuplicateOrders();
838
            }
839
            if (args.containsOption("createDummyInvoices")) {
840
                runOnceTasks.createDummyInvoices();
841
            }
28921 tejbeer 842
 
31753 tejbeer 843
            if (args.containsOption("createGeofence")) {
844
                runOnceTasks.createGeofence();
845
            }
846
            if (args.containsOption("getAllGeofences")) {
847
                runOnceTasks.getAllGeofences();
848
            }
849
            if (args.containsOption("payMonthlyInvestment")) {
850
                investmentRelatedTasks.payMonthlyInvestment();
851
            }
852
            if (args.containsOption("evaluateActualInvestmentPayout")) {
853
                investmentRelatedTasks.evaluateActualInvestmentPayout();
854
            }
855
            if (args.containsOption("deleteGeofences")) {
856
                List<String> geofenceIds = args.getOptionValues("geofenceId");
857
                runOnceTasks.deleteGeofences(geofenceIds);
858
            }
859
            if (args.containsOption("createOffers")) {
860
                if (args.containsOption("fileName")) {
861
                    String fileName = args.getOptionValues("fileName").get(0);
862
                    FileInputStream stream = new FileInputStream(fileName);
863
                    runOnceTasks.createOffers(stream);
864
                }
865
            }
866
            if (args.containsOption("schemeout")) {
867
                if (args.containsOption("invoices")) {
868
                    String invoicesString = args.getOptionValues("invoices").get(0);
869
                    List<String> invoices = Arrays.asList(invoicesString.split(","));
870
                    scheduledTasks.processSchemeOut(invoices);
871
                }
872
            }
873
            if (args.containsOption("schemein")) {
874
                if (args.containsOption("invoices")) {
875
                    String invoicesString = args.getOptionValues("invoices").get(0);
876
                    List<String> invoices = Arrays.asList(invoicesString.split(","));
877
                    scheduledTasks.processSchemeIn(invoices);
878
                }
879
            }
28921 tejbeer 880
 
31753 tejbeer 881
            if (args.containsOption("fixScans")) {
882
                runOnceTasks.fixScans();
883
            }
884
            if (args.containsOption("fixPrebookingOrderGrn")) {
885
                runOnceTasks.genericCreateCurrentInventorySnapshot();
886
            }
887
            if (args.containsOption("fixOurSerialized")) {
888
                if (args.containsOption("orderIds")) {
889
                    String orderIdsString = args.getOptionValues("orderIds").get(0);
890
                    List<Integer> orderIds = Arrays.asList(orderIdsString.split(",")).stream().map(x -> Integer.parseInt(x)).collect(Collectors.toList());
891
                    // runOnceTasks.fixOurSerialized(orderIds);
892
                }
893
            }
29776 tejbeer 894
 
31753 tejbeer 895
            if (args.containsOption("reverseMaa")) {
896
                runOnceTasks.reverseMaa();
897
            }
29776 tejbeer 898
 
31753 tejbeer 899
            if (args.containsOption("fixOffer")) {
900
                runOnceTasks.fixOffer();
901
            }
29794 tejbeer 902
 
31753 tejbeer 903
            if (args.containsOption("opporeno")) {
904
                runOnceTasks.opporeno();
905
            }
30309 amit.gupta 906
 
31753 tejbeer 907
            if (args.containsOption("fixorders")) {
908
                runOnceTasks.fixOrders();
909
            }
910
            if (args.containsOption("fixreservations")) {
911
                runOnceTasks.fixReservations();
912
            }
913
            if (args.containsOption("addinvestment")) {
914
                runOnceTasks.addInvestment();
915
            }
916
            if (args.containsOption("brandregion")) {
917
                runOnceTasks.brandRegion();
918
            }
919
            if (args.containsOption("rollOutUpgardedMargins")) {
35520 amit 920
                scheduledTasks.rollOutUpgardedMargins(Arrays.asList(175140172, 175140189));
31753 tejbeer 921
            }
34029 ranu 922
            if (args.containsOption("pushRbmTargets")) {
923
                scheduledTasks.persistRbmTodayTargets();
924
            }
31753 tejbeer 925
            if (args.containsOption("rollOutUpgardedMarginsNextMonth")) {
35524 amit 926
                System.out.println("In rollOutUpgardedMarginsNextMonth");
35532 amit 927
                scheduledTasks.rollOutUpgardedMarginsNextMonth(Arrays.asList(175140172, 175140189, 175138897));
31753 tejbeer 928
            }
929
            if (args.containsOption("checkCancellationMargin")) {
930
                scheduledTasks.checkCancellationMargin();
931
            }
932
            if (args.containsOption("reviewUncontactablePartner")) {
933
                scheduledTasks.reviewUncontactablePartner();
934
            }
33078 ranu 935
            if (args.containsOption("reviewNonSdBuyingBrand")) {
936
                scheduledTasks.reviewNonSdBuyingBrand();
937
            }
31753 tejbeer 938
            if (args.containsOption("sendWelcomeEmail")) {
939
                onBoardingRelatedSchelduleTask.sendWelcomeEmail();
940
            }
29814 tejbeer 941
 
31753 tejbeer 942
            if (args.containsOption("partnerOnboardingLegalMigration")) {
943
                onBoardingRelatedSchelduleTask.partnerOnboardingLegalMigration();
944
            }
31031 amit.gupta 945
 
33526 amit.gupta 946
            if(args.containsOption("moveOrders")) {
947
                runOnceTasks.moveOrders();
948
            }
949
 
31753 tejbeer 950
            if (args.containsOption("addKycLegalMigration")) {
951
                onBoardingRelatedSchelduleTask.addKycLegalMigration();
952
            }
29776 tejbeer 953
 
954
 
31753 tejbeer 955
            if (args.containsOption("pushDataToSolr")) {
956
                listing.pushDataToSolr();
957
            }
30120 amit.gupta 958
 
31753 tejbeer 959
            if (args.containsOption("testGstPro")) {
960
                System.out.println("TestGstProc called");
961
                try {
962
                    runOnceTasks.updateIrnsToInvoices();
963
                } catch (Exception e) {
964
                    e.printStackTrace();
965
                }
966
            }
29308 tejbeer 967
 
37058 amit 968
            if (args.containsOption("regenerateBilledInvoices")) {
969
                if (args.containsOption("fromTime") && args.containsOption("toTime")) {
970
                    LocalDateTime fromTime = LocalDateTime.parse(args.getOptionValues("fromTime").get(0));
971
                    LocalDateTime toTime = LocalDateTime.parse(args.getOptionValues("toTime").get(0));
972
                    runOnceTasks.regenerateBilledInvoices(fromTime, toTime);
973
                } else {
974
                    System.out.println("regenerateBilledInvoices requires --fromTime and --toTime (ISO, e.g. 2026-06-01T00:00:00)");
975
                }
976
                System.exit(0);
977
            }
978
 
31753 tejbeer 979
            if (args.containsOption("reverseSchemeCancelInvoice")) {
980
                if (args.containsOption("invoice")) {
981
                    String invoice = args.getOptionValues("invoice").get(0);
982
                    runOnceTasks.reverseSchemes(invoice);
983
                }
984
            }
29863 tejbeer 985
 
31753 tejbeer 986
            if (args.containsOption("reverseInvalidActivation")) {
987
                if (args.containsOption("inventoryids")) {
988
                    String inventoryItemIdsString = args.getOptionValues("inventoryids").get(0);
989
                    List<Integer> inventoryItemIds = new ArrayList<>();
990
                    for (String inventoryItemIdString : inventoryItemIdsString.split(",")) {
991
                        int inventoryItemId = Integer.parseInt(inventoryItemIdString.trim());
992
                        inventoryItemIds.add(inventoryItemId);
993
                    }
994
                    runOnceTasks.reverseInvalidActivation(inventoryItemIds);
995
                }
996
            }
29863 tejbeer 997
 
31753 tejbeer 998
            if (args.containsOption("runme")) {
999
                runOnceTasks.runMe();
1000
            }
1001
            if (args.containsOption("" + "")) {
1002
                upgradeOfferService.authenticateUser();
1003
            }
1004
            if (args.containsOption("mandiiUser")) {
1005
                runOnceTasks.mandiiUser(args.getOptionValues("firstName").get(0), args.getOptionValues("lastName").get(0), args.getOptionValues("pan").get(0), args.getOptionValues("dob").get(0), args.getOptionValues("aadhaar").get(0), args.getOptionValues("gender").get(0), args.getOptionValues("father").get(0));
1006
            }
30335 amit.gupta 1007
 
31753 tejbeer 1008
            if (args.containsOption("mandiiUsers")) {
1009
                if (args.containsOption("pan")) {
1010
                    runOnceTasks.mandiiUsers(args.getOptionValues("pan").get(0));
1011
                } else {
1012
                    runOnceTasks.mandiiUsers();
1013
                }
1014
            }
30576 amit.gupta 1015
 
31753 tejbeer 1016
            if (args.containsOption("checkOppoImeiStatus")) {
1017
                try {
1018
                    standAlone.checkOppoImeiStatus();
1019
                } catch (Exception e) {
1020
                    e.printStackTrace();
1021
                }
1022
            }
30616 amit.gupta 1023
 
34417 amit.gupta 1024
            if (args.containsOption("checkRealmeImeiStatus")) {
1025
                try {
1026
                    standAlone.checkRealmeImeiStatus();
1027
                } catch (Exception e) {
1028
                    e.printStackTrace();
1029
                }
1030
            }
1031
 
31753 tejbeer 1032
            /*
1033
             * if (args.containsOption("checkRealmeImeiStatus")) { try {
1034
             * standAlone.checkRealmeImeiStatus(); } catch (Exception e) {
1035
             * e.printStackTrace(); } }
1036
             */
30616 amit.gupta 1037
 
31753 tejbeer 1038
            if (args.containsOption("amazonPurchase")) {
1039
                try {
1040
                    runOnceTasks.amazonPurchase();
1041
                } catch (Exception e) {
1042
                    e.printStackTrace();
1043
                }
1044
            }
30641 amit.gupta 1045
 
31753 tejbeer 1046
            if (args.containsOption("getCaptchaCode")) {
1047
                try {
1048
                    captchaService.getCaptchaCode("/home/amit/Desktop/generatingCodes.jpg");
1049
                } catch (Exception e) {
1050
                    e.printStackTrace();
1051
                }
1052
            }
30641 amit.gupta 1053
 
37326 amit 1054
            // --backfillMissingEwb --invoiceNumbers=A,B,C [--dryRun]
1055
            // Recovers EWB details from NIC for invoices whose IRN was recovered via DUPIRN, then
1056
            // re-renders their PDFs so the e-way bill section appears.
1057
            if (args.containsOption("backfillMissingEwb")) {
1058
                try {
1059
                    List<String> invoiceNumbers = Arrays.stream(
1060
                                    args.getOptionValues("invoiceNumbers").get(0).split(","))
1061
                            .map(String::trim).filter(x -> !x.isEmpty()).collect(Collectors.toList());
1062
                    boolean dryRun = args.containsOption("dryRun");
1063
                    System.out.println("backfillMissingEwb: " + invoiceNumbers.size()
1064
                            + " invoice(s), dryRun=" + dryRun);
1065
                    runOnceTasks.backfillMissingEwb(invoiceNumbers, dryRun);
1066
                } catch (Exception e) {
1067
                    e.printStackTrace();
1068
                }
1069
            }
1070
 
31753 tejbeer 1071
            if (args.containsOption("testIrnLive")) {
1072
                try {
1073
                    runOnceTasks.testIrnLive(args.getOptionValues("invoiceNumber").get(0));
1074
                } catch (Exception e) {
1075
                    e.printStackTrace();
1076
                }
1077
            }
30659 amit.gupta 1078
 
31753 tejbeer 1079
            if (args.containsOption("createoffercriteria")) {
1080
                try {
1081
                    runOnceTasks.createOfferCriteria();
1082
                } catch (Exception e) {
1083
                    e.printStackTrace();
1084
                }
1085
            }
30659 amit.gupta 1086
 
31753 tejbeer 1087
            if (args.containsOption("fix-price-drops")) {
1088
                runOnceTasks.fixPriceDrop();
1089
            }
29035 tejbeer 1090
 
31753 tejbeer 1091
            if (args.containsOption("processSchemeByIds")) {
1092
                List<String> schemeIds = Arrays.asList(args.getOptionValues("ids").get(0).split(","));
1093
                List<Integer> schemeIdsInt = schemeIds.stream().map(x -> Integer.parseInt(x)).collect(Collectors.toList());
1094
                runOnceTasks.processSchemeByIds(schemeIdsInt);
1095
            }
30859 tejbeer 1096
 
31753 tejbeer 1097
            if (args.containsOption("updateSaholicCISTable")) {
1098
                runOnceTasks.updateSaholicCISTable();
1099
            }
30859 tejbeer 1100
 
31753 tejbeer 1101
            if (args.containsOption("mapbag")) {
1102
                runOnceTasks.mapBag();
1103
            }
30859 tejbeer 1104
 
34579 vikas.jang 1105
            if (args.containsOption("todayBidPO")) {
34443 vikas.jang 1106
                runOnceTasks.processBids(ProfitMandiConstants.BID_CRON_ENUM.TODAY);
1107
            }
1108
 
34579 vikas.jang 1109
            if (args.containsOption("yesterdayBidPO")) {
1110
                runOnceTasks.processBids(ProfitMandiConstants.BID_CRON_ENUM.YESTERDAY);
1111
            }
1112
 
34547 vikas.jang 1113
            if (args.containsOption("biddingConsolidatedMessage")) {
1114
                runOnceTasks.consolidatedBiddingMessage();
1115
            }
1116
 
1117
            if (args.containsOption("sendMailWhatsAppAfterLoanDueDate")) {
1118
                scheduledTasks.sendMailWhatsAppAfterLoanDueDate();
1119
            }
1120
 
34836 vikas 1121
            if (args.containsOption("yesterdayTrackingReport")) {
1122
                runOnceTasks.yesterdayTrackingReport();
34770 vikas.jang 1123
            }
1124
 
31753 tejbeer 1125
            System.exit(0);
1126
        }
30859 tejbeer 1127
 
31753 tejbeer 1128
        if (args.containsOption("calculateInterestAccured")) {
30929 tejbeer 1129
 
31753 tejbeer 1130
            scheduledTasks.calculateInterestAccured();
1131
            System.exit(0);
1132
        }
30929 tejbeer 1133
 
31753 tejbeer 1134
        if (args.containsOption("loanSettlement")) {
30890 amit.gupta 1135
 
31753 tejbeer 1136
            scheduledTasks.loanSettlement();
1137
            System.exit(0);
1138
        }
30896 amit.gupta 1139
 
31753 tejbeer 1140
        if (args.containsOption("dailyLoanAlert")) {
30936 tejbeer 1141
 
31753 tejbeer 1142
            scheduledTasks.dailyLoanAlert();
1143
            System.exit(0);
1144
        }
30982 tejbeer 1145
 
36564 amit 1146
        if (args.containsOption("testFlagshipBilling")) {
1147
            int trId = Integer.parseInt(args.getOptionValues("testFlagshipBilling").get(0));
1148
            double amt = Double.parseDouble(args.getOptionValues("testFlagshipBillingAmount").get(0));
1149
            String inv = args.getOptionValues("testFlagshipBillingInvoice").get(0);
1150
            scheduledTasks.testFlagshipBilling(trId, amt, inv);
1151
            System.exit(0);
1152
        }
1153
 
36554 amit 1154
        if (args.containsOption("convertExpiredFlagshipCredits")) {
1155
            scheduledTasks.convertExpiredFlagshipCredits();
1156
            System.exit(0);
1157
        }
1158
 
36745 ranu 1159
        // Manual back-fill for missed-beat detection. Default: today.
1160
        // Usage: --detectMissedBeats [--date=YYYY-MM-DD]
1161
        if (args.containsOption("detectMissedBeats")) {
1162
            LocalDate date = LocalDate.now();
1163
            if (args.containsOption("date")) {
1164
                date = LocalDate.parse(args.getOptionValues("date").get(0));
1165
            }
1166
            int inserted = beatMissDetectorRunner.syncMissesForDate(date);
1167
            LOGGER.info("detectMissedBeats: {} miss rows inserted for {}", inserted, date);
1168
            System.exit(0);
1169
        }
1170
 
36554 amit 1171
        if (args.containsOption("notifyFlagshipExpiryIn2Days")) {
1172
            scheduledTasks.notifyFlagshipExpiryIn2Days();
1173
            System.exit(0);
1174
        }
1175
 
31753 tejbeer 1176
        if (args.containsOption("notifyDefaultLoans")) {
1177
            scheduledTasks.notifyDefaultLoans();
1178
            System.exit(0);
1179
        }
31446 amit.gupta 1180
 
31753 tejbeer 1181
        if (args.containsOption("fixinsurance")) {
1182
            runOnceTasks.addMissingWalletDebitsForInsurance();
1183
            System.exit(0);
1184
        }
31604 tejbeer 1185
 
31753 tejbeer 1186
        if (args.containsOption("processActivatedImeisForSchemes")) {
1187
            scheduledTasks.processActivatedImeisForSchemes();
1188
            System.exit(0);
1189
        }
31604 tejbeer 1190
 
36306 amit 1191
        if (args.containsOption("updatePartnerLimitWithBatch")) {
1192
            System.out.println("Running updatePartnerLimit with batch tracking");
1193
            batchScheduledTasks.updatePartnerLimitWithBatch();
1194
            System.exit(0);
1195
        }
1196
 
1197
        if (args.containsOption("processOffersWithBatch")) {
1198
            for (String val : args.getOptionValues("processOffersWithBatch")) {
1199
                for (String id : val.split(",")) {
1200
                    int offerId = Integer.parseInt(id.trim());
1201
                    System.out.println("Processing offer with batch: " + offerId);
1202
                    batchScheduledTasks.processOfferWithBatch(offerId);
1203
                }
1204
            }
1205
            System.exit(0);
1206
        }
1207
 
31753 tejbeer 1208
        if (args.containsOption("notifyLoanDueDateCross")) {
1209
            scheduledTasks.notifyLoanDueDateCross();
1210
            System.exit(0);
1211
        }
34275 tejus.loha 1212
        if (args.containsOption("sendTenOrMoreOrderStockReport")) {
1213
            scheduledTasks.send10OrMoreOlderStockReport();
1214
            System.exit(0);
1215
        }
31604 tejbeer 1216
 
31753 tejbeer 1217
        if (args.containsOption("alertForDueDate")) {
1218
            scheduledTasks.alertForDueDate();
1219
            System.exit(0);
1220
        }
31648 tejbeer 1221
 
31753 tejbeer 1222
        if (args.containsOption("fetchParnterStats")) {
1223
            scheduledTasks.fetchParnterStats();
1224
            System.exit(0);
1225
        }
1226
 
1227
        if (args.containsOption("morning")) {
1228
            if (args.containsOption("0")) {
1229
                scheduledTasks.sendPartnerInvestmentDetails();
1230
            }
1231
            if (args.containsOption("1")) {
1232
                scheduledTasks.sendIndentTertiary();
1233
            }
1234
            // 0
1235
            if (args.containsOption("2")) {
1236
                scheduledTasks.calculateInterestAccured();
1237
            }
1238
            System.out.println("scheduledTasks.calculateInterestAccured()");
1239
            // 0
1240
            if (args.containsOption("3")) {
32831 amit.gupta 1241
                orderTrackingService.markDelhiveryOrderDelivered();
31753 tejbeer 1242
            }
1243
            System.out.println("scheduledTasks.markDelhiveryOrderDelivered()");
1244
            // 1
1245
            if (args.containsOption("4")) {
1246
                scheduledTasks.processActivatedImeisForSchemes();
1247
            }
1248
            System.out.println("scheduledTasks.processActivatedImeisForSchemes()");
1249
            // 2
1250
            if (args.containsOption("5")) {
1251
                scheduledTasks.processActivation();
1252
            }
1253
            System.out.println("scheduledTasks.processActivation()");
1254
            // 4
1255
            if (args.containsOption("6")) {
1256
                scheduledTasks.processPriceDrop();
1257
            }
1258
            System.out.println("scheduledTasks.processPriceDrop()");
1259
            // 5
1260
            if (args.containsOption("7")) {
1261
                scheduledTasks.loanSettlement();
1262
            }
1263
            System.out.println("scheduledTasks.loanSettlement()");
36554 amit 1264
            if (args.containsOption("7a")) {
1265
                scheduledTasks.convertExpiredFlagshipCredits();
1266
                scheduledTasks.notifyFlagshipExpiryIn2Days();
1267
            }
1268
            System.out.println("scheduledTasks.convertExpiredFlagshipCredits()");
31753 tejbeer 1269
            // 8
1270
            if (args.containsOption("8")) {
1271
                scheduledTasks.reviewUncontactablePartner();
1272
            }
1273
            // 9
33859 tejus.loha 1274
//            if (args.containsOption("9")) {
1275
//                onBoardingRelatedSchelduleTask.storeTimelinePromoterPending();
1276
//            }
1277
//            // 9
1278
//            if (args.containsOption("10")) {
1279
//                onBoardingRelatedSchelduleTask.advancePaymentPendinglegalAlert();
1280
//            }
31753 tejbeer 1281
            // sendPartnerInvestment
1282
            if (args.containsOption("11")) {
1283
                scheduledTasks.sendPartnerInvestmentDetails();
1284
            }
37236 amit 1285
            if (args.containsOption("1")) {
36993 amit 1286
                // Defaults to a dry-run (harmless dev path); pass --live to run the real pipeline.
1287
                boolean dryRun = !args.containsOption("live");
1288
                System.out.println("Calling sendCreditNote (dryRun=" + dryRun + ")");
34029 ranu 1289
                YearMonth yearMonth = YearMonth.now().minusMonths(1);
36993 amit 1290
                scheduledTasks.sendCreditNote(yearMonth, dryRun);
31753 tejbeer 1291
            }
37258 amit 1292
            if (args.containsOption("syncHotDealFlags")) {
1293
                try {
1294
                    System.out.println("Calling syncHotDealFlags");
1295
                    scheduledTasks.syncHotDealFlags();
1296
                    System.out.println("syncHotDealFlags completed successfully");
1297
                } catch (Exception e) {
1298
                    System.err.println("syncHotDealFlags FAILED: " + e.getMessage());
1299
                    e.printStackTrace(System.err);
1300
                }
1301
            }
37238 amit 1302
            if (args.containsOption("regenMarginIrns")) {
1303
                // One-time: generate missing IRNs for issued margin CN/DNs (mixed-sign docs
1304
                // now netted per GST rate in the payload). Dry-run by default; --live to run.
1305
                boolean dryRun = !args.containsOption("live");
1306
                try {
1307
                    String ymStr = args.getOptionValues("regenMarginIrns").isEmpty() ? null : args.getOptionValues("regenMarginIrns").get(0);
1308
                    YearMonth yearMonth = ymStr != null && !ymStr.isEmpty() ? YearMonth.parse(ymStr) : YearMonth.now().minusMonths(1);
1309
                    System.out.println("regenMarginIrns for " + yearMonth + " (dryRun=" + dryRun + ")");
1310
                    scheduledTasks.regenMarginIrns(yearMonth, dryRun);
1311
                    System.out.println("regenMarginIrns completed successfully");
1312
                } catch (Exception e) {
1313
                    System.err.println("regenMarginIrns FAILED: " + e.getMessage());
1314
                    e.printStackTrace(System.err);
1315
                }
1316
            }
37236 amit 1317
            if (args.containsOption("cancelMarginDnIrns")) {
1318
                // One-time: cancel IRNs of margin DNs inflated by the abs bug (24h NIC window!)
1319
                // and mark them cancelled so a sendCreditNote rerun reissues corrected DNs.
1320
                // Defaults to dry-run; pass --live to actually cancel.
1321
                boolean dryRun = !args.containsOption("live");
1322
                try {
1323
                    String ymStr = args.getOptionValues("cancelMarginDnIrns").isEmpty() ? null : args.getOptionValues("cancelMarginDnIrns").get(0);
1324
                    YearMonth yearMonth = ymStr != null && !ymStr.isEmpty() ? YearMonth.parse(ymStr) : YearMonth.now().minusMonths(1);
1325
                    System.out.println("cancelMarginDnIrns for " + yearMonth + " (dryRun=" + dryRun + ")");
1326
                    scheduledTasks.cancelMarginDnIrns(yearMonth, dryRun);
1327
                    System.out.println("cancelMarginDnIrns completed successfully");
1328
                } catch (Exception e) {
1329
                    System.err.println("cancelMarginDnIrns FAILED: " + e.getMessage());
1330
                    e.printStackTrace(System.err);
1331
                }
1332
            }
37232 amit 1333
            if (args.containsOption("corrMarginCNs")) {
1334
                // One-time corrective CNs against wrongly-inflated margin DNs.
1335
                // Defaults to dry-run; pass --live to issue real documents.
1336
                boolean dryRun = !args.containsOption("live");
1337
                try {
1338
                    String ymStr = args.getOptionValues("corrMarginCNs").isEmpty() ? null : args.getOptionValues("corrMarginCNs").get(0);
1339
                    YearMonth yearMonth = ymStr != null && !ymStr.isEmpty() ? YearMonth.parse(ymStr) : YearMonth.now().minusMonths(1);
1340
                    System.out.println("corrMarginCNs for " + yearMonth + " (dryRun=" + dryRun + ")");
1341
                    scheduledTasks.corrMarginCNs(yearMonth, dryRun);
1342
                    System.out.println("corrMarginCNs completed successfully");
1343
                } catch (Exception e) {
1344
                    System.err.println("corrMarginCNs FAILED: " + e.getMessage());
1345
                    e.printStackTrace(System.err);
1346
                }
1347
            }
36220 amit 1348
            if (args.containsOption("genDNs")) {
1349
                System.out.println("Calling genDNs");
36254 amit 1350
                try {
1351
                    String ymStr = args.getOptionValues("genDNs").isEmpty() ? null : args.getOptionValues("genDNs").get(0);
1352
                    YearMonth yearMonth = ymStr != null ? YearMonth.parse(ymStr) : YearMonth.now().minusMonths(1);
1353
                    System.out.println("genDNs for " + yearMonth);
1354
                    scheduledTasks.genDNs(yearMonth);
1355
                    System.out.println("genDNs completed successfully");
1356
                } catch (Exception e) {
1357
                    System.err.println("genDNs FAILED: " + e.getMessage());
1358
                    e.printStackTrace(System.err);
1359
                }
36220 amit 1360
            }
36503 amit 1361
            if (args.containsOption("genDNsForCNs")) {
1362
                System.out.println("Calling genDNsForCNs");
1363
                try {
1364
                    String cnList = args.getOptionValues("genDNsForCNs").get(0);
1365
                    List<String> cnNumbers = Arrays.asList(cnList.split(","));
1366
                    System.out.println("genDNsForCNs for " + cnNumbers.size() + " CNs: " + cnNumbers);
1367
                    scheduledTasks.genDNsForCNs(cnNumbers);
1368
                    System.out.println("genDNsForCNs completed successfully");
1369
                } catch (Exception e) {
1370
                    System.err.println("genDNsForCNs FAILED: " + e.getMessage());
1371
                    e.printStackTrace(System.err);
1372
                }
1373
            }
36433 amit 1374
            System.exit(0);
1375
        }
1376
 
31753 tejbeer 1377
    }
24848 amit.gupta 1378
}