| 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);
|