Subversion Repositories SmartDukaan

Rev

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

Rev 23917 Rev 23935
Line 1... Line 1...
1
package com.smartdukaan.cron.migrations;
1
package com.smartdukaan.cron.migrations;
2
 
2
 
3
import java.io.File;
-
 
4
import java.time.LocalDate;
3
import java.time.LocalDate;
5
import java.time.LocalDateTime;
4
import java.time.LocalDateTime;
6
import java.time.LocalTime;
5
import java.time.LocalTime;
7
import java.util.ArrayList;
-
 
8
import java.util.Arrays;
6
import java.util.Arrays;
9
import java.util.Collections;
7
import java.util.Collections;
10
import java.util.List;
8
import java.util.List;
11
import java.util.Map;
-
 
12
import java.util.stream.Collectors;
-
 
13
 
9
 
14
import javax.mail.internet.InternetAddress;
-
 
15
import javax.mail.internet.MimeMessage;
-
 
16
 
-
 
17
import org.apache.commons.io.FileUtils;
-
 
18
import org.apache.commons.lang.StringUtils;
10
import org.apache.commons.lang.StringUtils;
19
import org.apache.logging.log4j.LogManager;
11
import org.apache.logging.log4j.LogManager;
20
import org.apache.logging.log4j.Logger;
12
import org.apache.logging.log4j.Logger;
21
import org.springframework.beans.factory.annotation.Autowired;
13
import org.springframework.beans.factory.annotation.Autowired;
22
import org.springframework.mail.javamail.JavaMailSender;
14
import org.springframework.mail.javamail.JavaMailSender;
23
import org.springframework.mail.javamail.MimeMessageHelper;
-
 
24
import org.springframework.stereotype.Component;
15
import org.springframework.stereotype.Component;
25
import org.springframework.transaction.annotation.Transactional;
16
import org.springframework.transaction.annotation.Transactional;
26
 
17
 
27
import com.spice.profitmandi.common.model.CustomRetailer;
-
 
28
import com.spice.profitmandi.common.util.FormattingUtils;
-
 
29
import com.spice.profitmandi.common.util.Utils;
-
 
30
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
-
 
31
import com.spice.profitmandi.dao.entity.fofo.Purchase;
18
import com.spice.profitmandi.dao.entity.fofo.Purchase;
32
import com.spice.profitmandi.dao.entity.transaction.LineItem;
19
import com.spice.profitmandi.dao.entity.transaction.LineItem;
33
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
20
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
34
import com.spice.profitmandi.dao.entity.transaction.Order;
21
import com.spice.profitmandi.dao.entity.transaction.Order;
35
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
22
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
Line 48... Line 35...
48
 
35
 
49
	private static final Logger LOGGER = LogManager.getLogger(RunOnceTasks.class);
36
	private static final Logger LOGGER = LogManager.getLogger(RunOnceTasks.class);
50
 
37
 
51
	@Autowired
38
	@Autowired
52
	private LineItemRepository lineItemRepository;
39
	private LineItemRepository lineItemRepository;
53
 
-
 
54
	@Autowired
-
 
55
	private JavaMailSender mailSender;
-
 
56
	
40
	
57
	@Autowired
41
	@Autowired
58
	private WalletService walletService;
42
	private WalletService walletService;
59
 
43
 
60
	@Autowired
44
	@Autowired
Line 134... Line 118...
134
						e.getMessage());
118
						e.getMessage());
135
			}
119
			}
136
		}
120
		}
137
		LOGGER.info("Migrated LineItems Successfully");
121
		LOGGER.info("Migrated LineItems Successfully");
138
	}
122
	}
139
 
-
 
140
	public void getInvestmentDetails() throws Exception {
-
 
141
		File f = new File("/tmp/InvestmentSummary-" + FormattingUtils.formatDate(LocalDateTime.now()) + ".csv");
-
 
142
		List<String> lines = new ArrayList<>();
-
 
143
		lines.add(
-
 
144
				"Code\tStoreName\tEmail\tMobile\tminimumInvestment\twalletAmount\tinStockAmount\tunbilledStockAmount\tgrnPendingStockAmount\tTotalInvested");
-
 
145
		List<FofoStore> fofoStores = fofoStoreRepository.selectAll();
-
 
146
		Map<Integer, CustomRetailer> customRetailerMap = retailerService
-
 
147
				.getFofoRetailers(fofoStores.stream().map(x -> x.getId()).collect(Collectors.toList()));
-
 
148
		for (FofoStore fofoStore : fofoStores) {
-
 
149
			try {
-
 
150
				CustomRetailer retailer = customRetailerMap.get(fofoStore.getId());
-
 
151
				float walletAmount = walletService.getUserWallet(fofoStore.getId()).getAmount();
-
 
152
				float inStockAmount = inventoryService.getTotalAmountInStock(fofoStore.getId());
-
 
153
 
-
 
154
				float unbilledStockAmount = 0;
-
 
155
				List<Order> unbilledOrders = transactionService.getInTransitOrders(fofoStore.getId());
-
 
156
				for (Order unBilledOrder : unbilledOrders) {
-
 
157
					unbilledStockAmount += unBilledOrder.getTotalAmount();
-
 
158
				}
-
 
159
 
-
 
160
				float grnPendingStockAmount = 0;
-
 
161
				List<Order> grnPendingOrders = orderRepository.selectPendingGrnOrders(fofoStore.getId());
-
 
162
				for (Order grnPendingOrder : grnPendingOrders) {
-
 
163
					LOGGER.info("Grn pending for Order {} and partner {}", grnPendingOrder.getId(), grnPendingOrder.getRetailerEmailId());
-
 
164
					grnPendingStockAmount += grnPendingOrder.getTotalAmount();
-
 
165
				}
-
 
166
				float totalInvestedAmount = walletAmount + inStockAmount + unbilledStockAmount + grnPendingStockAmount;
-
 
167
				lines.add(String.join("\t", fofoStore.getCode(), retailer.getBusinessName(), retailer.getEmail(), retailer.getMobileNumber(),
-
 
168
						String.valueOf(fofoStore.getMinimumInvestment()), String.valueOf(walletAmount),
-
 
169
						String.valueOf(inStockAmount), String.valueOf(unbilledStockAmount),
-
 
170
						String.valueOf(grnPendingStockAmount), String.valueOf(totalInvestedAmount)));
-
 
171
			} catch (Exception e) {
-
 
172
				e.printStackTrace();
-
 
173
				continue;
-
 
174
			}
-
 
175
			FileUtils.writeLines(f, lines);
-
 
176
		}
-
 
177
		Utils.sendMailWithAttachments(mailSender,"amit.gupta@shop2020.in", null, "Partner Investment Summary", "PFA", Arrays.asList(f));
-
 
178
	}
-
 
179
	
-
 
180
}
123
}
181
124