Subversion Repositories SmartDukaan

Rev

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

Rev 23983 Rev 23986
Line 3... Line 3...
3
import java.text.MessageFormat;
3
import java.text.MessageFormat;
4
import java.time.LocalDateTime;
4
import java.time.LocalDateTime;
5
import java.util.ArrayList;
5
import java.util.ArrayList;
6
import java.util.Arrays;
6
import java.util.Arrays;
7
import java.util.HashMap;
7
import java.util.HashMap;
-
 
8
import java.util.HashSet;
8
import java.util.List;
9
import java.util.List;
9
import java.util.Map;
10
import java.util.Map;
-
 
11
import java.util.Set;
10
import java.util.stream.Collectors;
12
import java.util.stream.Collectors;
11
 
13
 
12
import javax.servlet.http.HttpServletRequest;
14
import javax.servlet.http.HttpServletRequest;
13
import javax.transaction.Transactional;
15
import javax.transaction.Transactional;
14
 
16
 
Line 49... Line 51...
49
import com.spice.profitmandi.common.util.FileUtil;
51
import com.spice.profitmandi.common.util.FileUtil;
50
import com.spice.profitmandi.common.util.FormattingUtils;
52
import com.spice.profitmandi.common.util.FormattingUtils;
51
import com.spice.profitmandi.dao.entity.catalog.Item;
53
import com.spice.profitmandi.dao.entity.catalog.Item;
52
import com.spice.profitmandi.dao.entity.catalog.TagListing;
54
import com.spice.profitmandi.dao.entity.catalog.TagListing;
53
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
55
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
-
 
56
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
54
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
57
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
55
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
58
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
56
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
59
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
57
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
60
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
58
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
61
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
-
 
62
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
-
 
63
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
59
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
64
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
60
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
65
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
61
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
66
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
62
import com.spice.profitmandi.service.inventory.InventoryService;
67
import com.spice.profitmandi.service.inventory.InventoryService;
63
import com.spice.profitmandi.service.pricing.PriceDropService;
68
import com.spice.profitmandi.service.pricing.PriceDropService;
Line 65... Line 70...
65
import com.spice.profitmandi.service.transaction.TransactionService;
70
import com.spice.profitmandi.service.transaction.TransactionService;
66
import com.spice.profitmandi.service.wallet.WalletService;
71
import com.spice.profitmandi.service.wallet.WalletService;
67
import com.spice.profitmandi.web.util.MVCResponseSender;
72
import com.spice.profitmandi.web.util.MVCResponseSender;
68
 
73
 
69
import in.shop2020.model.v1.order.WalletReferenceType;
74
import in.shop2020.model.v1.order.WalletReferenceType;
-
 
75
import in.shop2020.model.v1.user.ItemQuantity;
70
 
76
 
71
@Controller
77
@Controller
72
@Transactional
78
@Transactional
73
public class PriceDropController {
79
public class PriceDropController {
74
 
80
 
Line 92... Line 98...
92
 
98
 
93
	@Autowired
99
	@Autowired
94
	private PriceDropService priceDropService;
100
	private PriceDropService priceDropService;
95
	
101
	
96
	@Autowired
102
	@Autowired
-
 
103
	private InventoryItemRepository inventoryItemRepository;
-
 
104
	
-
 
105
	@Autowired
97
	private WalletService walletService;
106
	private WalletService walletService;
98
 
107
 
99
	@Autowired
108
	@Autowired
100
	private TagListingRepository tagListingRepository;
109
	private TagListingRepository tagListingRepository;
101
 
110
 
Line 106... Line 115...
106
	@Qualifier("catalogItemRepository")
115
	@Qualifier("catalogItemRepository")
107
	private ItemRepository itemRepository;
116
	private ItemRepository itemRepository;
108
 
117
 
109
	@Autowired
118
	@Autowired
110
	private SchemeService schemeService;
119
	private SchemeService schemeService;
-
 
120
	
-
 
121
	@Autowired
-
 
122
	private SchemeInOutRepository schemeInOutRepository;
111
 
123
 
112
	@Autowired
124
	@Autowired
113
	ReporticoService reporticoService;
125
	ReporticoService reporticoService;
114
	
126
	
115
	@Autowired
127
	@Autowired
Line 140... Line 152...
140
		model.addAttribute("priceDrops", priceDrops);
152
		model.addAttribute("priceDrops", priceDrops);
141
		model.addAttribute("catalogDescription", catalogDescription);
153
		model.addAttribute("catalogDescription", catalogDescription);
142
		return "price-drop";
154
		return "price-drop";
143
 
155
 
144
	}
156
	}
145
 
157
	
-
 
158
	/*@RequestMapping(value = "/price-drop/imes1/download")
-
 
159
	public ResponseEntity<ByteArrayResource> downloadPriceDropImeis1(HttpServletRequest request,
-
 
160
			@RequestParam LocalDateTime affectedDate, @RequestParam int itemId) throws Exception {
-
 
161
		Item item = itemRepository.selectById(itemId);
-
 
162
		List<ImeiDropSummaryModel> imeiDropSummaryModelList = this.getAllSerialNumbersByAffectedDate(affectedDate, item.getCatalogItemId());
-
 
163
		List<String> imeis = imeiDropSummaryModelList.stream().map(x->x.getSerialNumber()).collect(Collectors.toList());
-
 
164
		Map<String, ImeiDropSummaryModel> imeisDropMap = imeiDropSummaryModelList.stream().collect(Collectors.toMap(ImeiDropSummaryModel::getSerialNumber, x->x));
-
 
165
		List<InventoryItem> inventoryItems = inventoryItemRepository.selectBySerialNumbers(new HashSet<>(imeis));
-
 
166
		List<Integer> inventoryItemIds = inventoryItems.stream().map(InventoryItem::getId).collect(Collectors.toList());
-
 
167
		
-
 
168
		List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(new HashSet<>(inventoryItemIds));
-
 
169
		
-
 
170
		Set<ItemQuantity> itemSchemes = new HashSet<>();
-
 
171
		Map<ItemQuantity, SchemeInOut> itemSchemeInOutMap = new HashMap<>(); 
-
 
172
		for(SchemeInOut schemeInOut : schemeInOuts) {
-
 
173
		}
-
 
174
		List<List<Object>> rows = new ArrayList<>();
-
 
175
		for (ImeiDropSummaryModel imeiDropSummaryModel : imeiDropSummaryModelList) {
-
 
176
			List<Object> row = this.getRow(imeiDropSummaryModel);
-
 
177
			
-
 
178
			rows.add(this.getRow(imeiDropSummaryModel));
-
 
179
		}
-
 
180
		
-
 
181
		FileUtil.getCSVByteStream(Arrays.asList("IMEI Number", "Store Name", "Store Code", "Item ID", "Brand",
-
 
182
				"Model Name", "Model Number", "Color", "Last Scanned"), 
-
 
183
				rows);
-
 
184
		final HttpHeaders headers = new HttpHeaders();
-
 
185
		headers.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-
 
186
		headers.set("Content-disposition", "inline; filename=imei-" + item.getItemDescriptionNoColor() + ".csv");
-
 
187
		return new ResponseEntity<ByteArrayResource>(null, headers, HttpStatus.OK);
-
 
188
	
-
 
189
	}*/
146
	@RequestMapping(value = "/price-drop/imes/download")
190
	@RequestMapping(value = "/price-drop/imes/download")
147
	public ResponseEntity<ByteArrayResource> downloadPriceDropImeis(HttpServletRequest request,
191
	public ResponseEntity<ByteArrayResource> downloadPriceDropImeis(HttpServletRequest request,
148
			@RequestParam LocalDateTime affectedDate, @RequestParam int itemId) throws Exception {
192
			@RequestParam LocalDateTime affectedDate, @RequestParam int itemId) throws Exception {
149
		Item item = itemRepository.selectById(itemId);
193
		Item item = itemRepository.selectById(itemId);
150
		ByteArrayOutputStream baos = getByteArrayOutputStream(affectedDate, item.getCatalogItemId());
194
		ByteArrayOutputStream baos = getByteArrayOutputStream(affectedDate, item.getCatalogItemId());
Line 309... Line 353...
309
	private ByteArrayOutputStream getByteArrayOutputStream(LocalDateTime affectedOn, Integer catalogItemId)
353
	private ByteArrayOutputStream getByteArrayOutputStream(LocalDateTime affectedOn, Integer catalogItemId)
310
			throws Exception {
354
			throws Exception {
311
		List<ImeiDropSummaryModel> imeiDropSummaryModelList = this.getAllSerialNumbersByAffectedDate(affectedOn, catalogItemId);
355
		List<ImeiDropSummaryModel> imeiDropSummaryModelList = this.getAllSerialNumbersByAffectedDate(affectedOn, catalogItemId);
312
		List<List<Object>> rows = new ArrayList<>();
356
		List<List<Object>> rows = new ArrayList<>();
313
		for (ImeiDropSummaryModel imeiDropSummaryModel : imeiDropSummaryModelList) {
357
		for (ImeiDropSummaryModel imeiDropSummaryModel : imeiDropSummaryModelList) {
314
			List<Object> row = new ArrayList<>();
-
 
315
			row.add(imeiDropSummaryModel.getSerialNumber());
-
 
316
			row.add(imeiDropSummaryModel.getStoreName());
-
 
317
			row.add(imeiDropSummaryModel.getPartnerCode());
-
 
318
			row.add(imeiDropSummaryModel.getItemId());
-
 
319
			row.add(imeiDropSummaryModel.getBrand());
358
			rows.add(this.getRow(imeiDropSummaryModel));
320
			row.add(imeiDropSummaryModel.getModelName());
-
 
321
			row.add(imeiDropSummaryModel.getModelNumber());
-
 
322
			row.add(imeiDropSummaryModel.getColor());
-
 
323
			row.add(FormattingUtils.formatReporitcoDate(imeiDropSummaryModel.getLastScanned()));
-
 
324
			rows.add(row);
-
 
325
		}
359
		}
326
 
-
 
327
		return FileUtil.getCSVByteStream(Arrays.asList("IMEI Number", "Store Name", "Store Code", "Item ID", "Brand",
360
		return FileUtil.getCSVByteStream(Arrays.asList("IMEI Number", "Store Name", "Store Code", "Item ID", "Brand",
328
				"Model Name", "Model Number", "Color", "Last Scanned"), rows);
361
				"Model Name", "Model Number", "Color", "Last Scanned"), rows);
329
	}
362
	}
-
 
363
	
-
 
364
	private List<Object> getRow(ImeiDropSummaryModel imeiDropSummaryModel) {
-
 
365
		List<Object> row = new ArrayList<>();
-
 
366
		row.add(imeiDropSummaryModel.getSerialNumber());
-
 
367
		row.add(imeiDropSummaryModel.getStoreName());
-
 
368
		row.add(imeiDropSummaryModel.getPartnerCode());
-
 
369
		row.add(imeiDropSummaryModel.getItemId());
-
 
370
		row.add(imeiDropSummaryModel.getBrand());
-
 
371
		row.add(imeiDropSummaryModel.getModelName());
-
 
372
		row.add(imeiDropSummaryModel.getModelNumber());
-
 
373
		row.add(imeiDropSummaryModel.getColor());
-
 
374
		row.add(FormattingUtils.formatReporitcoDate(imeiDropSummaryModel.getLastScanned()));
-
 
375
		return row;
-
 
376
	}
330
 
377
 
331
	private <T> List<T> getReports(Class<T> className, ReporticoProject project, String reportName,
378
	private <T> List<T> getReports(Class<T> className, ReporticoProject project, String reportName,
332
			Map<String, String> params) throws Exception {
379
			Map<String, String> params) throws Exception {
333
		HttpResponse reportResponse = reporticoService.getJsonFile(project, reportName, params);
380
		HttpResponse reportResponse = reporticoService.getJsonFile(project, reportName, params);
334
		JavaType type = objectMapper.getTypeFactory().constructParametricType(ReporticoResponseModel.class, className);
381
		JavaType type = objectMapper.getTypeFactory().constructParametricType(ReporticoResponseModel.class, className);