Subversion Repositories SmartDukaan

Rev

Rev 31120 | Rev 31169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31120 Rev 31123
Line 1... Line 1...
1
package com.smartdukaan.cron.scheduled;
1
package com.smartdukaan.cron.scheduled;
2
 
2
 
3
import java.io.FileOutputStream;
-
 
4
import java.io.IOException;
-
 
5
import java.io.ObjectOutputStream;
-
 
6
import java.io.Serializable;
-
 
7
import java.io.UnsupportedEncodingException;
-
 
8
import java.math.BigDecimal;
-
 
9
import java.math.RoundingMode;
-
 
10
import java.nio.file.Files;
-
 
11
import java.nio.file.Paths;
-
 
12
import java.sql.Timestamp;
-
 
13
import java.text.DecimalFormat;
-
 
14
import java.time.Duration;
-
 
15
import java.time.LocalDate;
-
 
16
import java.time.LocalDateTime;
-
 
17
import java.time.LocalTime;
-
 
18
import java.time.Month;
-
 
19
import java.time.YearMonth;
-
 
20
import java.time.format.DateTimeFormatter;
-
 
21
import java.time.temporal.ChronoField;
-
 
22
import java.time.temporal.ChronoUnit;
-
 
23
import java.util.ArrayList;
-
 
24
import java.util.Arrays;
-
 
25
import java.util.Base64;
-
 
26
import java.util.Collections;
-
 
27
import java.util.Comparator;
-
 
28
import java.util.HashMap;
-
 
29
import java.util.HashSet;
-
 
30
import java.util.LinkedHashMap;
-
 
31
import java.util.List;
-
 
32
import java.util.Map;
-
 
33
import java.util.Map.Entry;
-
 
34
import java.util.Optional;
-
 
35
import java.util.Set;
-
 
36
import java.util.stream.Collectors;
-
 
37
 
-
 
38
import javax.mail.MessagingException;
-
 
39
import javax.mail.internet.InternetAddress;
-
 
40
import javax.mail.internet.MimeMessage;
-
 
41
 
-
 
42
import org.apache.commons.io.output.ByteArrayOutputStream;
-
 
43
import org.apache.commons.lang.StringUtils;
-
 
44
import org.apache.http.client.methods.CloseableHttpResponse;
-
 
45
import org.apache.http.client.methods.HttpPost;
-
 
46
import org.apache.http.conn.HttpHostConnectException;
-
 
47
import org.apache.http.entity.StringEntity;
-
 
48
import org.apache.http.impl.client.CloseableHttpClient;
-
 
49
import org.apache.http.impl.client.HttpClients;
-
 
50
import org.apache.logging.log4j.LogManager;
-
 
51
import org.apache.logging.log4j.Logger;
-
 
52
import org.json.JSONArray;
-
 
53
import org.json.JSONObject;
-
 
54
import org.json.XML;
-
 
55
import org.springframework.beans.factory.annotation.Autowired;
-
 
56
import org.springframework.beans.factory.annotation.Qualifier;
-
 
57
import org.springframework.beans.factory.annotation.Value;
-
 
58
import org.springframework.core.io.ByteArrayResource;
-
 
59
import org.springframework.core.io.InputStreamSource;
-
 
60
import org.springframework.mail.javamail.JavaMailSender;
-
 
61
import org.springframework.mail.javamail.MimeMessageHelper;
-
 
62
import org.springframework.stereotype.Component;
-
 
63
import org.springframework.transaction.annotation.Transactional;
-
 
64
 
-
 
65
import com.google.common.collect.Lists;
3
import com.google.common.collect.Lists;
66
import com.google.gson.Gson;
4
import com.google.gson.Gson;
67
import com.razorpay.Payment;
5
import com.razorpay.Payment;
68
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
6
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
69
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
7
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
70
import com.spice.profitmandi.common.enumuration.MessageType;
8
import com.spice.profitmandi.common.enumuration.MessageType;
71
import com.spice.profitmandi.common.enumuration.RechargeStatus;
9
import com.spice.profitmandi.common.enumuration.RechargeStatus;
72
import com.spice.profitmandi.common.enumuration.ReporticoProject;
10
import com.spice.profitmandi.common.enumuration.ReporticoProject;
73
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
11
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
74
import com.spice.profitmandi.common.model.CustomRetailer;
-
 
75
import com.spice.profitmandi.common.model.FocusedModelShortageModel;
-
 
76
import com.spice.profitmandi.common.model.GstRate;
12
import com.spice.profitmandi.common.model.*;
77
import com.spice.profitmandi.common.model.InvoicePdfModel;
-
 
78
import com.spice.profitmandi.common.model.ProfitMandiConstants;
-
 
79
import com.spice.profitmandi.common.model.RechargeCredential;
-
 
80
import com.spice.profitmandi.common.model.SendNotificationModel;
-
 
81
import com.spice.profitmandi.common.services.ReporticoService;
13
import com.spice.profitmandi.common.services.ReporticoService;
82
import com.spice.profitmandi.common.services.mandii.AccountStatusResponseOut;
14
import com.spice.profitmandi.common.services.mandii.AccountStatusResponseOut;
83
import com.spice.profitmandi.common.services.mandii.EligibilityStatusEnum;
15
import com.spice.profitmandi.common.services.mandii.EligibilityStatusEnum;
84
import com.spice.profitmandi.common.services.mandii.MandiiService;
16
import com.spice.profitmandi.common.services.mandii.MandiiService;
85
import com.spice.profitmandi.common.util.FileUtil;
17
import com.spice.profitmandi.common.util.FileUtil;
Line 94... Line 26...
94
import com.spice.profitmandi.dao.entity.catalog.FocusedModel;
26
import com.spice.profitmandi.dao.entity.catalog.FocusedModel;
95
import com.spice.profitmandi.dao.entity.catalog.Item;
27
import com.spice.profitmandi.dao.entity.catalog.Item;
96
import com.spice.profitmandi.dao.entity.catalog.Scheme;
28
import com.spice.profitmandi.dao.entity.catalog.Scheme;
97
import com.spice.profitmandi.dao.entity.cs.Position;
29
import com.spice.profitmandi.dao.entity.cs.Position;
98
import com.spice.profitmandi.dao.entity.cs.Ticket;
30
import com.spice.profitmandi.dao.entity.cs.Ticket;
99
import com.spice.profitmandi.dao.entity.dtr.CreditAccount;
-
 
100
import com.spice.profitmandi.dao.entity.dtr.CreditStatus;
-
 
101
import com.spice.profitmandi.dao.entity.dtr.DailyRecharge;
-
 
102
import com.spice.profitmandi.dao.entity.dtr.EmployeeAttendance;
-
 
103
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
-
 
104
import com.spice.profitmandi.dao.entity.dtr.NotificationCampaign;
-
 
105
import com.spice.profitmandi.dao.entity.dtr.PushNotifications;
-
 
106
import com.spice.profitmandi.dao.entity.dtr.RechargeProvider;
-
 
107
import com.spice.profitmandi.dao.entity.dtr.RechargeProviderCreditWalletHistory;
-
 
108
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
-
 
109
import com.spice.profitmandi.dao.entity.dtr.User;
31
import com.spice.profitmandi.dao.entity.dtr.User;
110
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
-
 
111
import com.spice.profitmandi.dao.entity.fofo.CurrentPartnerDailyInvestment;
-
 
112
import com.spice.profitmandi.dao.entity.fofo.Customer;
32
import com.spice.profitmandi.dao.entity.dtr.*;
113
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
-
 
114
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
-
 
115
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
-
 
116
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
-
 
117
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
-
 
118
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
-
 
119
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
-
 
120
import com.spice.profitmandi.dao.entity.fofo.PartnerProblem;
-
 
121
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
-
 
122
import com.spice.profitmandi.dao.entity.fofo.PendingOrder;
-
 
123
import com.spice.profitmandi.dao.entity.fofo.PendingOrderItem;
-
 
124
import com.spice.profitmandi.dao.entity.fofo.Purchase;
-
 
125
import com.spice.profitmandi.dao.entity.fofo.RazorPay;
33
import com.spice.profitmandi.dao.entity.fofo.*;
126
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
-
 
127
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
-
 
128
import com.spice.profitmandi.dao.entity.inventory.ReporticoCacheTable;
34
import com.spice.profitmandi.dao.entity.inventory.ReporticoCacheTable;
129
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
35
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
130
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
36
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
131
import com.spice.profitmandi.dao.entity.transaction.Loan;
37
import com.spice.profitmandi.dao.entity.transaction.*;
132
import com.spice.profitmandi.dao.entity.transaction.LoanStatement;
-
 
133
import com.spice.profitmandi.dao.entity.transaction.Order;
-
 
134
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
-
 
135
import com.spice.profitmandi.dao.entity.transaction.PriceDropIMEI;
-
 
136
import com.spice.profitmandi.dao.entity.transaction.SDCreditRequirement;
-
 
137
import com.spice.profitmandi.dao.entity.transaction.SanctionRequest;
-
 
138
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
-
 
139
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
-
 
140
import com.spice.profitmandi.dao.entity.user.Address;
-
 
141
import com.spice.profitmandi.dao.entity.user.Device;
-
 
142
import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;
-
 
143
import com.spice.profitmandi.dao.entity.user.Lead;
38
import com.spice.profitmandi.dao.entity.user.*;
144
import com.spice.profitmandi.dao.entity.user.Refferal;
-
 
145
import com.spice.profitmandi.dao.enumuration.auth.CollectionRemark;
39
import com.spice.profitmandi.dao.enumuration.auth.CollectionRemark;
146
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
40
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
147
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
41
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
148
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
42
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
149
import com.spice.profitmandi.dao.enumuration.fofo.Gateway;
43
import com.spice.profitmandi.dao.enumuration.fofo.Gateway;
Line 154... Line 48...
154
import com.spice.profitmandi.dao.model.PartnerDetailModel;
48
import com.spice.profitmandi.dao.model.PartnerDetailModel;
155
import com.spice.profitmandi.dao.model.SimpleCampaign;
49
import com.spice.profitmandi.dao.model.SimpleCampaign;
156
import com.spice.profitmandi.dao.model.SimpleCampaignParams;
50
import com.spice.profitmandi.dao.model.SimpleCampaignParams;
157
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
51
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
158
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
52
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
159
import com.spice.profitmandi.dao.repository.catalog.DeviceRepository;
-
 
160
import com.spice.profitmandi.dao.repository.catalog.FocusedModelRepository;
-
 
161
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
53
import com.spice.profitmandi.dao.repository.catalog.*;
162
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
-
 
163
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
-
 
164
import com.spice.profitmandi.dao.repository.cs.CsService;
54
import com.spice.profitmandi.dao.repository.cs.*;
165
import com.spice.profitmandi.dao.repository.cs.PartnerRegionRepository;
-
 
166
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
-
 
167
import com.spice.profitmandi.dao.repository.cs.RegionRepository;
-
 
168
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
-
 
169
import com.spice.profitmandi.dao.repository.dtr.CreditAccountRepository;
-
 
170
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
-
 
171
import com.spice.profitmandi.dao.repository.dtr.EmployeeAttendanceRepository;
-
 
172
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
-
 
173
import com.spice.profitmandi.dao.repository.dtr.FranchiseeActivityRepository;
-
 
174
import com.spice.profitmandi.dao.repository.dtr.FranchiseeVisitRepository;
-
 
175
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
-
 
176
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
-
 
177
import com.spice.profitmandi.dao.repository.dtr.Mongo;
55
import com.spice.profitmandi.dao.repository.dtr.*;
178
import com.spice.profitmandi.dao.repository.dtr.NotificationCampaignRepository;
-
 
179
import com.spice.profitmandi.dao.repository.dtr.PartnerProblemRepository;
-
 
180
import com.spice.profitmandi.dao.repository.dtr.PushNotificationRepository;
-
 
181
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
-
 
182
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
-
 
183
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
-
 
184
import com.spice.profitmandi.dao.repository.dtr.RefferalRepository;
-
 
185
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
-
 
186
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
-
 
187
import com.spice.profitmandi.dao.repository.dtr.UserCampaignRepository;
-
 
188
import com.spice.profitmandi.dao.repository.fofo.ActivatedImeiRepository;
-
 
189
import com.spice.profitmandi.dao.repository.fofo.CurrentInventorySnapshotRepository;
-
 
190
import com.spice.profitmandi.dao.repository.fofo.CurrentPartnerDailyInvestmentRepository;
-
 
191
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
-
 
192
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
-
 
193
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
-
 
194
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
-
 
195
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
-
 
196
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
-
 
197
import com.spice.profitmandi.dao.repository.fofo.PartnerDailyInvestmentRepository;
-
 
198
import com.spice.profitmandi.dao.repository.fofo.PartnerTargetRepository;
-
 
199
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeRepository;
-
 
200
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
-
 
201
import com.spice.profitmandi.dao.repository.fofo.PendingOrderItemRepository;
-
 
202
import com.spice.profitmandi.dao.repository.fofo.PendingOrderRepository;
-
 
203
import com.spice.profitmandi.dao.repository.fofo.PendingOrderService;
-
 
204
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
-
 
205
import com.spice.profitmandi.dao.repository.fofo.RazorPayRepository;
56
import com.spice.profitmandi.dao.repository.fofo.*;
206
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
-
 
207
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
-
 
208
import com.spice.profitmandi.dao.repository.fofo.ServiceConfigRepository;
-
 
209
import com.spice.profitmandi.dao.repository.inventory.ReporticoCacheTableRepository;
57
import com.spice.profitmandi.dao.repository.inventory.ReporticoCacheTableRepository;
210
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
58
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
211
import com.spice.profitmandi.dao.repository.inventory.WarehouseRepository;
59
import com.spice.profitmandi.dao.repository.inventory.WarehouseRepository;
212
import com.spice.profitmandi.dao.repository.transaction.HdfcPaymentRepository;
-
 
213
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
-
 
214
import com.spice.profitmandi.dao.repository.transaction.LoanRepository;
60
import com.spice.profitmandi.dao.repository.transaction.*;
215
import com.spice.profitmandi.dao.repository.transaction.LoanStatementRepository;
-
 
216
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
-
 
217
import com.spice.profitmandi.dao.repository.transaction.PriceDropIMEIRepository;
-
 
218
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
-
 
219
import com.spice.profitmandi.dao.repository.transaction.SDCreditRequirementRepository;
-
 
220
import com.spice.profitmandi.dao.repository.transaction.SanctionRequestRepository;
-
 
221
import com.spice.profitmandi.dao.repository.transaction.TransactionRepository;
-
 
222
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
-
 
223
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
-
 
224
import com.spice.profitmandi.dao.repository.user.AddressRepository;
61
import com.spice.profitmandi.dao.repository.user.AddressRepository;
225
import com.spice.profitmandi.dao.repository.user.UserRepository;
62
import com.spice.profitmandi.dao.repository.user.UserRepository;
226
import com.spice.profitmandi.service.NotificationService;
63
import com.spice.profitmandi.service.NotificationService;
227
import com.spice.profitmandi.service.PartnerInvestmentService;
64
import com.spice.profitmandi.service.PartnerInvestmentService;
228
import com.spice.profitmandi.service.PartnerStatsService;
65
import com.spice.profitmandi.service.PartnerStatsService;
Line 240... Line 77...
240
import com.spice.profitmandi.service.transaction.CreditNoteService;
77
import com.spice.profitmandi.service.transaction.CreditNoteService;
241
import com.spice.profitmandi.service.transaction.SDCreditService;
78
import com.spice.profitmandi.service.transaction.SDCreditService;
242
import com.spice.profitmandi.service.transaction.TransactionService;
79
import com.spice.profitmandi.service.transaction.TransactionService;
243
import com.spice.profitmandi.service.user.RetailerService;
80
import com.spice.profitmandi.service.user.RetailerService;
244
import com.spice.profitmandi.service.wallet.WalletService;
81
import com.spice.profitmandi.service.wallet.WalletService;
245
 
-
 
246
import in.shop2020.model.v1.order.OrderStatus;
82
import in.shop2020.model.v1.order.OrderStatus;
247
import in.shop2020.model.v1.order.WalletReferenceType;
83
import in.shop2020.model.v1.order.WalletReferenceType;
248
import okhttp3.OkHttpClient;
84
import okhttp3.OkHttpClient;
249
import okhttp3.Request;
85
import okhttp3.Request;
250
import okhttp3.Response;
86
import okhttp3.Response;
-
 
87
import org.apache.commons.io.output.ByteArrayOutputStream;
-
 
88
import org.apache.commons.lang.StringUtils;
-
 
89
import org.apache.http.client.methods.CloseableHttpResponse;
-
 
90
import org.apache.http.client.methods.HttpPost;
-
 
91
import org.apache.http.conn.HttpHostConnectException;
-
 
92
import org.apache.http.entity.StringEntity;
-
 
93
import org.apache.http.impl.client.CloseableHttpClient;
-
 
94
import org.apache.http.impl.client.HttpClients;
-
 
95
import org.apache.logging.log4j.LogManager;
-
 
96
import org.apache.logging.log4j.Logger;
-
 
97
import org.json.JSONArray;
-
 
98
import org.json.JSONObject;
-
 
99
import org.json.XML;
-
 
100
import org.springframework.beans.factory.annotation.Autowired;
-
 
101
import org.springframework.beans.factory.annotation.Qualifier;
-
 
102
import org.springframework.beans.factory.annotation.Value;
-
 
103
import org.springframework.core.io.ByteArrayResource;
-
 
104
import org.springframework.core.io.InputStreamSource;
-
 
105
import org.springframework.mail.javamail.JavaMailSender;
-
 
106
import org.springframework.mail.javamail.MimeMessageHelper;
-
 
107
import org.springframework.stereotype.Component;
-
 
108
import org.springframework.transaction.annotation.Transactional;
-
 
109
 
-
 
110
import javax.mail.MessagingException;
-
 
111
import javax.mail.internet.InternetAddress;
-
 
112
import javax.mail.internet.MimeMessage;
-
 
113
import java.io.*;
-
 
114
import java.math.BigDecimal;
-
 
115
import java.math.RoundingMode;
-
 
116
import java.nio.file.Files;
-
 
117
import java.nio.file.Paths;
-
 
118
import java.sql.Timestamp;
-
 
119
import java.text.DecimalFormat;
-
 
120
import java.time.*;
-
 
121
import java.time.format.DateTimeFormatter;
-
 
122
import java.time.temporal.ChronoField;
-
 
123
import java.time.temporal.ChronoUnit;
-
 
124
import java.util.*;
-
 
125
import java.util.Map.Entry;
-
 
126
import java.util.stream.Collectors;
251
 
127
 
252
@Component
128
@Component
253
@Transactional(rollbackFor = Throwable.class)
129
@Transactional(rollbackFor = Throwable.class)
254
public class ScheduledTasks {
130
public class ScheduledTasks {
255
 
131
 
Line 3588... Line 3464...
3588
 
3464
 
3589
	@Autowired
3465
	@Autowired
3590
	private TransactionRepository transactionRepository;
3466
	private TransactionRepository transactionRepository;
3591
 
3467
 
3592
	@Autowired
3468
	@Autowired
3593
	private CreditAccountRepository crediRepository;
-
 
3594
 
-
 
3595
	@Autowired
-
 
3596
	private SanctionRequestRepository sanctionRequestRepository;
3469
	private SanctionRequestRepository sanctionRequestRepository;
3597
 
3470
 
3598
	public void calculateInterestAccured() throws ProfitMandiBusinessException {
3471
	public void calculateInterestAccured() throws ProfitMandiBusinessException {
3599
 
3472
 
3600
		List<Loan> loans = loanRepository.selectAllActiveLoan();
3473
		List<Loan> loans = loanRepository.selectAllActiveLoan();