Subversion Repositories SmartDukaan

Rev

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

Rev 32114 Rev 32117
Line 1... Line 1...
1
package com.smartdukaan.cron.scheduled;
1
package com.smartdukaan.cron.scheduled;
2
 
2
 
-
 
3
import static java.util.stream.Collectors.groupingBy;
-
 
4
import static java.util.stream.Collectors.mapping;
-
 
5
 
-
 
6
import java.io.FileOutputStream;
-
 
7
import java.io.IOException;
-
 
8
import java.io.ObjectOutputStream;
-
 
9
import java.io.Serializable;
-
 
10
import java.io.UnsupportedEncodingException;
-
 
11
import java.math.BigDecimal;
-
 
12
import java.math.RoundingMode;
-
 
13
import java.nio.file.Files;
-
 
14
import java.nio.file.Paths;
-
 
15
import java.sql.Timestamp;
-
 
16
import java.text.DecimalFormat;
-
 
17
import java.time.Duration;
-
 
18
import java.time.LocalDate;
-
 
19
import java.time.LocalDateTime;
-
 
20
import java.time.LocalTime;
-
 
21
import java.time.Month;
-
 
22
import java.time.YearMonth;
-
 
23
import java.time.format.DateTimeFormatter;
-
 
24
import java.time.temporal.ChronoField;
-
 
25
import java.time.temporal.ChronoUnit;
-
 
26
import java.util.ArrayList;
-
 
27
import java.util.Arrays;
-
 
28
import java.util.Base64;
-
 
29
import java.util.Collections;
-
 
30
import java.util.Comparator;
-
 
31
import java.util.HashMap;
-
 
32
import java.util.HashSet;
-
 
33
import java.util.LinkedHashMap;
-
 
34
import java.util.List;
-
 
35
import java.util.Map;
-
 
36
import java.util.Map.Entry;
-
 
37
import java.util.Objects;
-
 
38
import java.util.Optional;
-
 
39
import java.util.Set;
-
 
40
import java.util.stream.Collectors;
-
 
41
import java.util.stream.Stream;
-
 
42
 
-
 
43
import javax.mail.MessagingException;
-
 
44
import javax.mail.internet.InternetAddress;
-
 
45
import javax.mail.internet.MimeMessage;
-
 
46
 
-
 
47
import org.apache.commons.io.output.ByteArrayOutputStream;
-
 
48
import org.apache.commons.lang.StringUtils;
-
 
49
import org.apache.http.client.methods.CloseableHttpResponse;
-
 
50
import org.apache.http.client.methods.HttpPost;
-
 
51
import org.apache.http.conn.HttpHostConnectException;
-
 
52
import org.apache.http.entity.StringEntity;
-
 
53
import org.apache.http.impl.client.CloseableHttpClient;
-
 
54
import org.apache.http.impl.client.HttpClients;
-
 
55
import org.apache.logging.log4j.LogManager;
-
 
56
import org.apache.logging.log4j.Logger;
-
 
57
import org.json.JSONArray;
-
 
58
import org.json.JSONObject;
-
 
59
import org.json.XML;
-
 
60
import org.springframework.beans.factory.annotation.Autowired;
-
 
61
import org.springframework.beans.factory.annotation.Qualifier;
-
 
62
import org.springframework.beans.factory.annotation.Value;
-
 
63
import org.springframework.core.io.ByteArrayResource;
-
 
64
import org.springframework.core.io.InputStreamSource;
-
 
65
import org.springframework.mail.javamail.JavaMailSender;
-
 
66
import org.springframework.mail.javamail.MimeMessageHelper;
-
 
67
import org.springframework.stereotype.Component;
-
 
68
import org.springframework.transaction.annotation.Transactional;
-
 
69
 
3
import com.google.common.collect.Lists;
70
import com.google.common.collect.Lists;
4
import com.google.gson.Gson;
71
import com.google.gson.Gson;
5
import com.razorpay.Payment;
72
import com.razorpay.Payment;
6
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
73
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
7
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
74
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
8
import com.spice.profitmandi.common.enumuration.ActivationType;
75
import com.spice.profitmandi.common.enumuration.ActivationType;
9
import com.spice.profitmandi.common.enumuration.MessageType;
76
import com.spice.profitmandi.common.enumuration.MessageType;
10
import com.spice.profitmandi.common.enumuration.RechargeStatus;
77
import com.spice.profitmandi.common.enumuration.RechargeStatus;
11
import com.spice.profitmandi.common.enumuration.ReporticoProject;
78
import com.spice.profitmandi.common.enumuration.ReporticoProject;
12
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
79
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
-
 
80
import com.spice.profitmandi.common.model.CustomRetailer;
-
 
81
import com.spice.profitmandi.common.model.FocusedModelShortageModel;
13
import com.spice.profitmandi.common.model.*;
82
import com.spice.profitmandi.common.model.GstRate;
-
 
83
import com.spice.profitmandi.common.model.InvoicePdfModel;
-
 
84
import com.spice.profitmandi.common.model.ProfitMandiConstants;
-
 
85
import com.spice.profitmandi.common.model.RechargeCredential;
-
 
86
import com.spice.profitmandi.common.model.SendNotificationModel;
14
import com.spice.profitmandi.common.services.ReporticoService;
87
import com.spice.profitmandi.common.services.ReporticoService;
15
import com.spice.profitmandi.common.services.mandii.AccountStatusResponseOut;
88
import com.spice.profitmandi.common.services.mandii.AccountStatusResponseOut;
16
import com.spice.profitmandi.common.services.mandii.EligibilityStatusEnum;
89
import com.spice.profitmandi.common.services.mandii.EligibilityStatusEnum;
17
import com.spice.profitmandi.common.services.mandii.MandiiService;
90
import com.spice.profitmandi.common.services.mandii.MandiiService;
18
import com.spice.profitmandi.common.util.FileUtil;
91
import com.spice.profitmandi.common.util.FileUtil;
Line 28... Line 101...
28
import com.spice.profitmandi.dao.entity.catalog.Item;
101
import com.spice.profitmandi.dao.entity.catalog.Item;
29
import com.spice.profitmandi.dao.entity.catalog.Scheme;
102
import com.spice.profitmandi.dao.entity.catalog.Scheme;
30
import com.spice.profitmandi.dao.entity.catalog.TagListing;
103
import com.spice.profitmandi.dao.entity.catalog.TagListing;
31
import com.spice.profitmandi.dao.entity.cs.Position;
104
import com.spice.profitmandi.dao.entity.cs.Position;
32
import com.spice.profitmandi.dao.entity.cs.Ticket;
105
import com.spice.profitmandi.dao.entity.cs.Ticket;
-
 
106
import com.spice.profitmandi.dao.entity.dtr.CreditAccount;
-
 
107
import com.spice.profitmandi.dao.entity.dtr.CreditStatus;
-
 
108
import com.spice.profitmandi.dao.entity.dtr.DailyRecharge;
-
 
109
import com.spice.profitmandi.dao.entity.dtr.EmployeeAttendance;
-
 
110
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
-
 
111
import com.spice.profitmandi.dao.entity.dtr.NotificationCampaign;
-
 
112
import com.spice.profitmandi.dao.entity.dtr.PushNotifications;
-
 
113
import com.spice.profitmandi.dao.entity.dtr.RechargeProvider;
-
 
114
import com.spice.profitmandi.dao.entity.dtr.RechargeProviderCreditWalletHistory;
-
 
115
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
-
 
116
import com.spice.profitmandi.dao.entity.dtr.RetailerBlockBrands;
33
import com.spice.profitmandi.dao.entity.dtr.User;
117
import com.spice.profitmandi.dao.entity.dtr.User;
-
 
118
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
-
 
119
import com.spice.profitmandi.dao.entity.fofo.CurrentPartnerDailyInvestment;
34
import com.spice.profitmandi.dao.entity.dtr.*;
120
import com.spice.profitmandi.dao.entity.fofo.Customer;
-
 
121
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
-
 
122
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
-
 
123
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
-
 
124
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
-
 
125
import com.spice.profitmandi.dao.entity.fofo.FofoPayment;
-
 
126
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
-
 
127
import com.spice.profitmandi.dao.entity.fofo.HygieneData;
-
 
128
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
-
 
129
import com.spice.profitmandi.dao.entity.fofo.MonthlyTarget;
-
 
130
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
-
 
131
import com.spice.profitmandi.dao.entity.fofo.PartnerProblem;
-
 
132
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
-
 
133
import com.spice.profitmandi.dao.entity.fofo.PendingOrder;
-
 
134
import com.spice.profitmandi.dao.entity.fofo.PendingOrderItem;
35
import com.spice.profitmandi.dao.entity.fofo.*;
135
import com.spice.profitmandi.dao.entity.fofo.Purchase;
-
 
136
import com.spice.profitmandi.dao.entity.fofo.RazorPay;
-
 
137
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
-
 
138
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
36
import com.spice.profitmandi.dao.entity.inventory.PartnerAgeingModel;
139
import com.spice.profitmandi.dao.entity.inventory.PartnerAgeingModel;
37
import com.spice.profitmandi.dao.entity.inventory.ReporticoCacheTable;
140
import com.spice.profitmandi.dao.entity.inventory.ReporticoCacheTable;
38
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
141
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
39
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
142
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
40
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
143
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
41
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
144
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
42
import com.spice.profitmandi.dao.entity.transaction.*;
145
import com.spice.profitmandi.dao.entity.transaction.Loan;
-
 
146
import com.spice.profitmandi.dao.entity.transaction.LoanStatement;
-
 
147
import com.spice.profitmandi.dao.entity.transaction.Order;
-
 
148
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
-
 
149
import com.spice.profitmandi.dao.entity.transaction.PriceDropIMEI;
-
 
150
import com.spice.profitmandi.dao.entity.transaction.SDCreditRequirement;
-
 
151
import com.spice.profitmandi.dao.entity.transaction.SanctionRequest;
-
 
152
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
-
 
153
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
-
 
154
import com.spice.profitmandi.dao.entity.user.Address;
-
 
155
import com.spice.profitmandi.dao.entity.user.Device;
-
 
156
import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;
43
import com.spice.profitmandi.dao.entity.user.*;
157
import com.spice.profitmandi.dao.entity.user.Lead;
-
 
158
import com.spice.profitmandi.dao.entity.user.Refferal;
44
import com.spice.profitmandi.dao.enumuration.auth.CollectionRemark;
159
import com.spice.profitmandi.dao.enumuration.auth.CollectionRemark;
45
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
160
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
46
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
161
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
47
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
162
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
48
import com.spice.profitmandi.dao.enumuration.fofo.Gateway;
163
import com.spice.profitmandi.dao.enumuration.fofo.Gateway;
Line 50... Line 165...
50
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
165
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
51
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
166
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
52
import com.spice.profitmandi.dao.enumuration.transaction.CreditRisk;
167
import com.spice.profitmandi.dao.enumuration.transaction.CreditRisk;
53
import com.spice.profitmandi.dao.enumuration.transaction.LoanReferenceType;
168
import com.spice.profitmandi.dao.enumuration.transaction.LoanReferenceType;
54
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
169
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
-
 
170
import com.spice.profitmandi.dao.model.PartnerDetailModel;
-
 
171
import com.spice.profitmandi.dao.model.RetailerFilterModel;
-
 
172
import com.spice.profitmandi.dao.model.RetailerPeformanceFilterModel;
55
import com.spice.profitmandi.dao.model.*;
173
import com.spice.profitmandi.dao.model.SimpleCampaign;
-
 
174
import com.spice.profitmandi.dao.model.SimpleCampaignParams;
-
 
175
import com.spice.profitmandi.dao.model.VendorCatalogPricingModel;
56
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
176
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
57
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
177
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
-
 
178
import com.spice.profitmandi.dao.repository.catalog.CustomerOfferItemRepository;
-
 
179
import com.spice.profitmandi.dao.repository.catalog.CustomerOfferRepository;
-
 
180
import com.spice.profitmandi.dao.repository.catalog.DeviceRepository;
-
 
181
import com.spice.profitmandi.dao.repository.catalog.FocusedModelRepository;
58
import com.spice.profitmandi.dao.repository.catalog.*;
182
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
-
 
183
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
-
 
184
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
-
 
185
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
59
import com.spice.profitmandi.dao.repository.cs.*;
186
import com.spice.profitmandi.dao.repository.cs.CsService;
-
 
187
import com.spice.profitmandi.dao.repository.cs.PartnerRegionRepository;
-
 
188
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
-
 
189
import com.spice.profitmandi.dao.repository.cs.RegionRepository;
-
 
190
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
-
 
191
import com.spice.profitmandi.dao.repository.dtr.CreditAccountRepository;
-
 
192
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
-
 
193
import com.spice.profitmandi.dao.repository.dtr.EmployeeAttendanceRepository;
-
 
194
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
-
 
195
import com.spice.profitmandi.dao.repository.dtr.FranchiseeActivityRepository;
-
 
196
import com.spice.profitmandi.dao.repository.dtr.FranchiseeVisitRepository;
-
 
197
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
-
 
198
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
60
import com.spice.profitmandi.dao.repository.dtr.*;
199
import com.spice.profitmandi.dao.repository.dtr.Mongo;
-
 
200
import com.spice.profitmandi.dao.repository.dtr.NotificationCampaignRepository;
-
 
201
import com.spice.profitmandi.dao.repository.dtr.PartnerProblemRepository;
-
 
202
import com.spice.profitmandi.dao.repository.dtr.PushNotificationRepository;
-
 
203
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
-
 
204
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
-
 
205
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
-
 
206
import com.spice.profitmandi.dao.repository.dtr.RefferalRepository;
-
 
207
import com.spice.profitmandi.dao.repository.dtr.RetailerBlockBrandsRepository;
-
 
208
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
-
 
209
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
-
 
210
import com.spice.profitmandi.dao.repository.dtr.UserCampaignRepository;
-
 
211
import com.spice.profitmandi.dao.repository.fofo.ActivatedImeiRepository;
-
 
212
import com.spice.profitmandi.dao.repository.fofo.CurrentInventorySnapshotRepository;
-
 
213
import com.spice.profitmandi.dao.repository.fofo.CurrentPartnerDailyInvestmentRepository;
-
 
214
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
-
 
215
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
-
 
216
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
-
 
217
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
-
 
218
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
-
 
219
import com.spice.profitmandi.dao.repository.fofo.FofoPaymentRepository;
-
 
220
import com.spice.profitmandi.dao.repository.fofo.HygieneDataRepository;
-
 
221
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
-
 
222
import com.spice.profitmandi.dao.repository.fofo.MonthlyTargetRepository;
-
 
223
import com.spice.profitmandi.dao.repository.fofo.PartnerDailyInvestmentRepository;
-
 
224
import com.spice.profitmandi.dao.repository.fofo.PartnerTargetRepository;
-
 
225
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeRepository;
-
 
226
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
-
 
227
import com.spice.profitmandi.dao.repository.fofo.PendingOrderItemRepository;
-
 
228
import com.spice.profitmandi.dao.repository.fofo.PendingOrderRepository;
-
 
229
import com.spice.profitmandi.dao.repository.fofo.PendingOrderService;
-
 
230
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
-
 
231
import com.spice.profitmandi.dao.repository.fofo.PurchaseReturnItemRepository;
61
import com.spice.profitmandi.dao.repository.fofo.*;
232
import com.spice.profitmandi.dao.repository.fofo.RazorPayRepository;
-
 
233
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
-
 
234
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
-
 
235
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
-
 
236
import com.spice.profitmandi.dao.repository.fofo.ServiceConfigRepository;
62
import com.spice.profitmandi.dao.repository.inventory.BrandAgeingLimitRepository;
237
import com.spice.profitmandi.dao.repository.inventory.BrandAgeingLimitRepository;
63
import com.spice.profitmandi.dao.repository.inventory.ReporticoCacheTableRepository;
238
import com.spice.profitmandi.dao.repository.inventory.ReporticoCacheTableRepository;
64
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
239
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
65
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingLogRepository;
240
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingLogRepository;
66
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
241
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
67
import com.spice.profitmandi.dao.repository.inventory.WarehouseRepository;
242
import com.spice.profitmandi.dao.repository.inventory.WarehouseRepository;
-
 
243
import com.spice.profitmandi.dao.repository.transaction.HdfcPaymentRepository;
-
 
244
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
68
import com.spice.profitmandi.dao.repository.transaction.*;
245
import com.spice.profitmandi.dao.repository.transaction.LoanRepository;
-
 
246
import com.spice.profitmandi.dao.repository.transaction.LoanStatementRepository;
-
 
247
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
-
 
248
import com.spice.profitmandi.dao.repository.transaction.PriceDropIMEIRepository;
-
 
249
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
-
 
250
import com.spice.profitmandi.dao.repository.transaction.SDCreditRequirementRepository;
-
 
251
import com.spice.profitmandi.dao.repository.transaction.SanctionRequestRepository;
-
 
252
import com.spice.profitmandi.dao.repository.transaction.TransactionRepository;
-
 
253
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
-
 
254
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
69
import com.spice.profitmandi.dao.repository.user.AddressRepository;
255
import com.spice.profitmandi.dao.repository.user.AddressRepository;
70
import com.spice.profitmandi.dao.repository.user.UserRepository;
256
import com.spice.profitmandi.dao.repository.user.UserRepository;
71
import com.spice.profitmandi.dao.repository.warehouse.BilledImeiModel;
257
import com.spice.profitmandi.dao.repository.warehouse.BilledImeiModel;
72
import com.spice.profitmandi.dao.repository.warehouse.BrandRegionMappingRepository;
258
import com.spice.profitmandi.dao.repository.warehouse.BrandRegionMappingRepository;
73
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
259
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
Line 95... Line 281...
95
import com.spice.profitmandi.service.transaction.CreditNoteService;
281
import com.spice.profitmandi.service.transaction.CreditNoteService;
96
import com.spice.profitmandi.service.transaction.SDCreditService;
282
import com.spice.profitmandi.service.transaction.SDCreditService;
97
import com.spice.profitmandi.service.transaction.TransactionService;
283
import com.spice.profitmandi.service.transaction.TransactionService;
98
import com.spice.profitmandi.service.user.RetailerService;
284
import com.spice.profitmandi.service.user.RetailerService;
99
import com.spice.profitmandi.service.wallet.WalletService;
285
import com.spice.profitmandi.service.wallet.WalletService;
-
 
286
 
100
import in.shop2020.model.v1.order.OrderStatus;
287
import in.shop2020.model.v1.order.OrderStatus;
101
import in.shop2020.model.v1.order.WalletReferenceType;
288
import in.shop2020.model.v1.order.WalletReferenceType;
102
import okhttp3.OkHttpClient;
289
import okhttp3.OkHttpClient;
103
import okhttp3.Request;
290
import okhttp3.Request;
104
import okhttp3.Response;
291
import okhttp3.Response;
105
import org.apache.commons.io.output.ByteArrayOutputStream;
-
 
106
import org.apache.commons.lang.StringUtils;
-
 
107
import org.apache.http.client.methods.CloseableHttpResponse;
-
 
108
import org.apache.http.client.methods.HttpPost;
-
 
109
import org.apache.http.conn.HttpHostConnectException;
-
 
110
import org.apache.http.entity.StringEntity;
-
 
111
import org.apache.http.impl.client.CloseableHttpClient;
-
 
112
import org.apache.http.impl.client.HttpClients;
-
 
113
import org.apache.logging.log4j.LogManager;
-
 
114
import org.apache.logging.log4j.Logger;
-
 
115
import org.json.JSONArray;
-
 
116
import org.json.JSONObject;
-
 
117
import org.json.XML;
-
 
118
import org.springframework.beans.factory.annotation.Autowired;
-
 
119
import org.springframework.beans.factory.annotation.Qualifier;
-
 
120
import org.springframework.beans.factory.annotation.Value;
-
 
121
import org.springframework.core.io.ByteArrayResource;
-
 
122
import org.springframework.core.io.InputStreamSource;
-
 
123
import org.springframework.mail.javamail.JavaMailSender;
-
 
124
import org.springframework.mail.javamail.MimeMessageHelper;
-
 
125
import org.springframework.stereotype.Component;
-
 
126
import org.springframework.transaction.annotation.Transactional;
-
 
127
 
-
 
128
import javax.mail.MessagingException;
-
 
129
import javax.mail.internet.InternetAddress;
-
 
130
import javax.mail.internet.MimeMessage;
-
 
131
import java.io.*;
-
 
132
import java.math.BigDecimal;
-
 
133
import java.math.RoundingMode;
-
 
134
import java.nio.file.Files;
-
 
135
import java.nio.file.Paths;
-
 
136
import java.sql.Timestamp;
-
 
137
import java.text.DecimalFormat;
-
 
138
import java.time.*;
-
 
139
import java.time.format.DateTimeFormatter;
-
 
140
import java.time.temporal.ChronoField;
-
 
141
import java.time.temporal.ChronoUnit;
-
 
142
import java.util.*;
-
 
143
import java.util.Map.Entry;
-
 
144
import java.util.stream.Collectors;
-
 
145
import java.util.stream.Stream;
-
 
146
 
-
 
147
import static java.util.stream.Collectors.groupingBy;
-
 
148
import static java.util.stream.Collectors.mapping;
-
 
149
 
292
 
150
 
293
 
151
@Component
294
@Component
152
@Transactional(rollbackFor = Throwable.class)
295
@Transactional(rollbackFor = Throwable.class)
153
public class ScheduledTasks {
296
public class ScheduledTasks {
Line 3370... Line 3513...
3370
                            settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(principalAmount), loan.getFofoId(), loan.getId(), "Amount adjusted against loan", LocalDateTime.now());
3513
                            settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(principalAmount), loan.getFofoId(), loan.getId(), "Amount adjusted against loan", LocalDateTime.now());
3371
                            double amount = userWalletAmount - Math.abs(principalAmount);
3514
                            double amount = userWalletAmount - Math.abs(principalAmount);
3372
 
3515
 
3373
                            paidAmount += Math.abs(principalAmount);
3516
                            paidAmount += Math.abs(principalAmount);
3374
 
3517
 
3375
                            userWallet.setAmount((int) amount);
3518
                           // userWallet.setAmount((int) amount);
3376
 
3519
 
3377
                            BigDecimal utilizationAmount = sdCreditRequirement.getUtilizedAmount().subtract(BigDecimal.valueOf(principalAmount).abs());
3520
                            BigDecimal utilizationAmount = sdCreditRequirement.getUtilizedAmount().subtract(BigDecimal.valueOf(principalAmount).abs());
3378
 
3521
 
3379
                            sdCreditRequirement.setUtilizedAmount(utilizationAmount);
3522
                            sdCreditRequirement.setUtilizedAmount(utilizationAmount);
3380
 
3523
 
Line 3399... Line 3542...
3399
 
3542
 
3400
                            CreditAccount creditAccount = creditAccountRepository.selectByFofoIdAndGateway(loan.getFofoId(), Gateway.SDDIRECT);
3543
                            CreditAccount creditAccount = creditAccountRepository.selectByFofoIdAndGateway(loan.getFofoId(), Gateway.SDDIRECT);
3401
 
3544
 
3402
                            creditAccount.setAvailableAmount(sdCreditRequirement.getAvailableLimit().floatValue());
3545
                            creditAccount.setAvailableAmount(sdCreditRequirement.getAvailableLimit().floatValue());
3403
                            creditAccount.setUpdatedOn(LocalDateTime.now());
3546
                            creditAccount.setUpdatedOn(LocalDateTime.now());
3404
                            userWallet.setAmount(0);
3547
                            //userWallet.setAmount(0);
3405
 
3548
 
3406
                            loan.setPendingAmount(
3549
                            loan.setPendingAmount(
3407
                                    loan.getPendingAmount().subtract(BigDecimal.valueOf(userWalletAmount)));
3550
                                    loan.getPendingAmount().subtract(BigDecimal.valueOf(userWalletAmount)));
3408
 
3551
 
3409
                        }
3552
                        }
3410
 
3553
 
-
 
3554
                        walletService.consumeAmountFromWallet(userWallet.getUserId(), loan.getId(), WalletReferenceType.LOAN_REPAYMENT, "Amount adjusted against loan", (float) Math.abs(paidAmount), LocalDateTime.now());
-
 
3555
 
3411
                        createUserWalletHistory(userWallet.getId(), userWallet.getUserId(), WalletReferenceType.LOAN_REPAYMENT, loan.getId(), Math.abs(paidAmount));
3556
                       // createUserWalletHistory(userWallet.getId(), userWallet.getUserId(), WalletReferenceType.LOAN_REPAYMENT, loan.getId(), Math.abs(paidAmount));
3412
 
3557
 
3413
                    } else {
3558
                    } else {
3414
 
3559
 
3415
                        settledLoanStatement(LoanReferenceType.INTEREST, BigDecimal.valueOf(userWallet.getAmount()), loan.getFofoId(), loan.getId(), "Amount adjusted against loan", LocalDateTime.now());
3560
                        settledLoanStatement(LoanReferenceType.INTEREST, BigDecimal.valueOf(userWallet.getAmount()), loan.getFofoId(), loan.getId(), "Amount adjusted against loan", LocalDateTime.now());
3416
 
3561
 
3417
                        paidAmount += Math.abs(userWallet.getAmount());
3562
                        paidAmount += Math.abs(userWallet.getAmount());
3418
 
3563
 
3419
                        createUserWalletHistory(userWallet.getId(), userWallet.getUserId(), WalletReferenceType.LOAN_REPAYMENT, loan.getId(), Math.abs(paidAmount));
-
 
3420
 
-
 
3421
                        loan.setInterestPaid(
3564
                        loan.setInterestPaid(
3422
                                loan.getInterestPaid().add(BigDecimal.valueOf(userWallet.getAmount()).abs()));
3565
                                loan.getInterestPaid().add(BigDecimal.valueOf(userWallet.getAmount()).abs()));
3423
 
3566
 
-
 
3567
                        //  createUserWalletHistory(userWallet.getId(), userWallet.getUserId(), WalletReferenceType.LOAN_REPAYMENT, loan.getId(), Math.abs(paidAmount));
-
 
3568
 
-
 
3569
                        walletService.consumeAmountFromWallet(userWallet.getUserId(), loan.getId(), WalletReferenceType.LOAN_REPAYMENT, "Amount adjusted against loan", (float) Math.abs(paidAmount), LocalDateTime.now());
-
 
3570
 
-
 
3571
 
3424
                        userWallet.setAmount(0);
3572
                        // userWallet.setAmount(0);
3425
                    }
3573
                    }
3426
 
3574
 
3427
                }
3575
                }
3428
            }
3576
            }
3429
 
3577