Subversion Repositories SmartDukaan

Rev

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