| Line 86... |
Line 86... |
| 86 |
import java.net.URISyntaxException;
|
86 |
import java.net.URISyntaxException;
|
| 87 |
import java.time.LocalDate;
|
87 |
import java.time.LocalDate;
|
| 88 |
import java.time.LocalDateTime;
|
88 |
import java.time.LocalDateTime;
|
| 89 |
import java.time.YearMonth;
|
89 |
import java.time.YearMonth;
|
| 90 |
import java.time.format.DateTimeFormatter;
|
90 |
import java.time.format.DateTimeFormatter;
|
| - |
|
91 |
import java.time.format.DateTimeFormatterBuilder;
|
| - |
|
92 |
import java.time.format.DateTimeParseException;
|
| - |
|
93 |
import java.time.temporal.ChronoField;
|
| 91 |
import java.time.temporal.ChronoUnit;
|
94 |
import java.time.temporal.ChronoUnit;
|
| 92 |
import java.util.*;
|
95 |
import java.util.*;
|
| 93 |
import java.util.stream.Collectors;
|
96 |
import java.util.stream.Collectors;
|
| 94 |
import java.util.stream.Stream;
|
97 |
import java.util.stream.Stream;
|
| 95 |
|
98 |
|
| Line 102... |
Line 105... |
| 102 |
private BillingWarehouseService billingWarehouseService;
|
105 |
private BillingWarehouseService billingWarehouseService;
|
| 103 |
|
106 |
|
| 104 |
|
107 |
|
| 105 |
private static final Logger LOGGER = LogManager.getLogger(InventoryController.class);
|
108 |
private static final Logger LOGGER = LogManager.getLogger(InventoryController.class);
|
| 106 |
|
109 |
|
| 107 |
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/yyyy H:m:s");
|
110 |
private static final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
|
| - |
|
111 |
.appendPattern("M/d/yyyy[ H:mm[:ss]]")
|
| - |
|
112 |
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
|
| - |
|
113 |
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
|
| - |
|
114 |
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
|
| - |
|
115 |
.toFormatter();
|
| 108 |
|
116 |
|
| 109 |
private static final List<String> imeis = Arrays.asList("351030944216680", "351030944217183", "351030944217886", "351030944507286", "351081710231270", "351081710238713", "351081710238796", "351081710241279", "351081710244737", "355777112655976");
|
117 |
private static final List<String> imeis = Arrays.asList("351030944216680", "351030944217183", "351030944217886", "351030944507286", "351081710231270", "351081710238713", "351081710238796", "351081710241279", "351081710244737", "355777112655976");
|
| 110 |
|
118 |
|
| 111 |
List<EscalationType> esclationType = Arrays.asList(EscalationType.L3, EscalationType.L4);
|
119 |
List<EscalationType> esclationType = Arrays.asList(EscalationType.L3, EscalationType.L4);
|
| 112 |
|
120 |
|
| Line 702... |
Line 710... |
| 702 |
* ProfitMandiBusinessException("Please select brand", "Brand empty",
|
710 |
* ProfitMandiBusinessException("Please select brand", "Brand empty",
|
| 703 |
* "Brand required"); }
|
711 |
* "Brand required"); }
|
| 704 |
*/
|
712 |
*/
|
| 705 |
List<CSVRecord> masterDataList = readFile(file);
|
713 |
List<CSVRecord> masterDataList = readFile(file);
|
| 706 |
|
714 |
|
| 707 |
Map<String, LocalDateTime> imeisActivationMap = masterDataList.stream().collect(Collectors.toMap(x -> x.get(0).trim(), x -> {
|
715 |
Map<String, LocalDateTime> imeisActivationMap = new LinkedHashMap<>();
|
| - |
|
716 |
List<String> errors = new ArrayList<>();
|
| - |
|
717 |
for (CSVRecord record : masterDataList) {
|
| 708 |
if (!StringUtils.isEmpty(x.get(1).trim())) {
|
718 |
String imei = record.get(0).trim();
|
| 709 |
return LocalDateTime.parse((String) (x.get(1).trim()), formatter);
|
719 |
String activationDate = record.size() > 1 ? record.get(1).trim() : "";
|
| 710 |
} else {
|
720 |
if (imeisActivationMap.containsKey(imei)) {
|
| - |
|
721 |
errors.add("Row " + record.getRecordNumber() + ": duplicate IMEI " + imei);
|
| 711 |
return null;
|
722 |
continue;
|
| 712 |
}
|
723 |
}
|
| - |
|
724 |
LocalDateTime activationTimestamp = null;
|
| - |
|
725 |
if (!StringUtils.isEmpty(activationDate)) {
|
| - |
|
726 |
try {
|
| - |
|
727 |
activationTimestamp = LocalDateTime.parse(activationDate, formatter);
|
| - |
|
728 |
} catch (DateTimeParseException e) {
|
| - |
|
729 |
errors.add("Row " + record.getRecordNumber() + ": invalid date '" + activationDate + "' for IMEI " + imei);
|
| - |
|
730 |
continue;
|
| - |
|
731 |
}
|
| - |
|
732 |
}
|
| - |
|
733 |
imeisActivationMap.put(imei, activationTimestamp);
|
| - |
|
734 |
}
|
| - |
|
735 |
if (!errors.isEmpty()) {
|
| - |
|
736 |
throw new ProfitMandiBusinessException("Activation Date", "M/d/yyyy or M/d/yyyy H:mm or M/d/yyyy H:mm:ss",
|
| - |
|
737 |
String.join("\n", errors));
|
| 713 |
}));
|
738 |
}
|
| 714 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
739 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| 715 |
String email = loginDetails.getEmailId();
|
740 |
String email = loginDetails.getEmailId();
|
| 716 |
AuthUser authUser = authRepository.selectByEmailOrMobile(email);
|
741 |
AuthUser authUser = authRepository.selectByEmailOrMobile(email);
|
| 717 |
inventoryService.addActivatedImeis(imeisActivationMap, authUser.getId());
|
742 |
inventoryService.addActivatedImeis(imeisActivationMap, authUser.getId());
|
| 718 |
model.addAttribute("response1", true);
|
743 |
model.addAttribute("response1", true);
|