| Line 22... |
Line 22... |
| 22 |
@Transactional(rollbackFor = Throwable.class)
|
22 |
@Transactional(rollbackFor = Throwable.class)
|
| 23 |
public class LeadSyncRunner {
|
23 |
public class LeadSyncRunner {
|
| 24 |
|
24 |
|
| 25 |
@Autowired
|
25 |
@Autowired
|
| 26 |
LeadRepository leadRepository;
|
26 |
LeadRepository leadRepository;
|
| - |
|
27 |
|
| - |
|
28 |
@Autowired
|
| - |
|
29 |
com.spice.profitmandi.dao.service.lead.LeadCreationService leadCreationService;
|
| 27 |
|
30 |
|
| 28 |
private static final Logger LOGGER = LogManager.getLogger(LeadSyncRunner.class);
|
31 |
private static final Logger LOGGER = LogManager.getLogger(LeadSyncRunner.class);
|
| 29 |
|
32 |
|
| 30 |
public void syncLeads() throws Exception {
|
33 |
public void syncLeads() throws Exception {
|
| 31 |
XmlMapper xmlMapper = new XmlMapper();
|
34 |
XmlMapper xmlMapper = new XmlMapper();
|
| 32 |
XmlStreamReader xmlStreamReader = new XmlStreamReader(new File("/root/leads.xml"));
|
35 |
XmlStreamReader xmlStreamReader = new XmlStreamReader(new File("/root/leads.xml"));
|
| 33 |
Items items = xmlMapper.readValue(xmlStreamReader, Items.class);
|
36 |
Items items = xmlMapper.readValue(xmlStreamReader, Items.class);
|
| 34 |
List<Item> itemList = items.getItems();
|
37 |
List<Item> itemList = items.getItems();
|
| - |
|
38 |
int skipped = 0;
|
| 35 |
for (Item item : itemList) {
|
39 |
for (Item item : itemList) {
|
| 36 |
Lead lead = new Lead();
|
40 |
Lead lead = new Lead();
|
| 37 |
lead.setAddress(item.getLocation().trim());
|
41 |
lead.setAddress(item.getLocation().trim());
|
| 38 |
lead.setLeadMobile(item.getNumber().trim());
|
42 |
lead.setLeadMobile(item.getNumber().trim());
|
| 39 |
lead.setCity(item.getLocation().trim());
|
43 |
lead.setCity(item.getLocation().trim());
|
| Line 56... |
Line 60... |
| 56 |
lead.setFirstName(item.getName().trim());
|
60 |
lead.setFirstName(item.getName().trim());
|
| 57 |
lead.setStatus(LeadStatus.followUp);
|
61 |
lead.setStatus(LeadStatus.followUp);
|
| 58 |
lead.setColor("yellow");
|
62 |
lead.setColor("yellow");
|
| 59 |
lead.setCreatedTimestamp(LocalDate.parse(item.getCreated(), DateTimeFormatter.ISO_DATE).atStartOfDay());
|
63 |
lead.setCreatedTimestamp(LocalDate.parse(item.getCreated(), DateTimeFormatter.ISO_DATE).atStartOfDay());
|
| 60 |
lead.setUpdatedTimestamp(LocalDateTime.now());
|
64 |
lead.setUpdatedTimestamp(LocalDateTime.now());
|
| - |
|
65 |
// Unattended: the nightly XML sync has no user. A number already being worked is
|
| - |
|
66 |
// skipped (and mailed to the Call Center desk) rather than duplicated; a number whose
|
| 61 |
leadRepository.persist(lead);
|
67 |
// open lead has gone stale is taken over silently.
|
| - |
|
68 |
if (leadCreationService.createUnattended(lead).isBlocked()) {
|
| - |
|
69 |
skipped++;
|
| - |
|
70 |
}
|
| - |
|
71 |
}
|
| - |
|
72 |
if (skipped > 0) {
|
| - |
|
73 |
LOGGER.info("Lead sync: {} row(s) skipped, already being worked", skipped);
|
| 62 |
}
|
74 |
}
|
| 63 |
}
|
75 |
}
|
| 64 |
}
|
76 |
}
|