fix: get group summary details
This commit is contained in:
+10
-1
@@ -26,6 +26,7 @@ public class GroupData {
|
|||||||
private final Long groupLevel;
|
private final Long groupLevel;
|
||||||
private final Long parentId;
|
private final Long parentId;
|
||||||
private final String parentName;
|
private final String parentName;
|
||||||
|
private final String hierarchy;
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final GroupSummaryData groupSummaryData;
|
private final GroupSummaryData groupSummaryData;
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@@ -43,7 +44,7 @@ public class GroupData {
|
|||||||
private final Collection<GroupLookupData> childGroups;
|
private final Collection<GroupLookupData> childGroups;
|
||||||
|
|
||||||
public GroupData(final Long id, final Long officeId, final String officeName, final String name, final String externalId,
|
public GroupData(final Long id, final Long officeId, final String officeName, final String name, final String externalId,
|
||||||
final Long groupLevel, final Long parentId, final String parentName, final Long staffId, final String staffName) {
|
final Long groupLevel, final Long parentId, final String parentName, final Long staffId, final String staffName , final String hierarchy) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.officeId = officeId;
|
this.officeId = officeId;
|
||||||
this.officeName = officeName;
|
this.officeName = officeName;
|
||||||
@@ -54,6 +55,7 @@ public class GroupData {
|
|||||||
this.parentName = parentName;
|
this.parentName = parentName;
|
||||||
this.staffId = staffId;
|
this.staffId = staffId;
|
||||||
this.staffName = staffName;
|
this.staffName = staffName;
|
||||||
|
this.hierarchy = hierarchy;
|
||||||
this.groupSummaryData = null;
|
this.groupSummaryData = null;
|
||||||
this.groupLevelData = null;
|
this.groupLevelData = null;
|
||||||
this.clientMembers = null;
|
this.clientMembers = null;
|
||||||
@@ -77,6 +79,7 @@ public class GroupData {
|
|||||||
this.parentName = group.getParentName();
|
this.parentName = group.getParentName();
|
||||||
this.staffId = group.getStaffId();
|
this.staffId = group.getStaffId();
|
||||||
this.staffName = group.getStaffName();
|
this.staffName = group.getStaffName();
|
||||||
|
this.hierarchy = group.getHierarchy();
|
||||||
|
|
||||||
this.groupSummaryData = groupSummaryData;
|
this.groupSummaryData = groupSummaryData;
|
||||||
this.groupLevelData = groupLevelData;
|
this.groupLevelData = groupLevelData;
|
||||||
@@ -102,6 +105,7 @@ public class GroupData {
|
|||||||
this.parentName = null;
|
this.parentName = null;
|
||||||
this.staffId = null;
|
this.staffId = null;
|
||||||
this.staffName = null;
|
this.staffName = null;
|
||||||
|
this.hierarchy = null;
|
||||||
this.groupSummaryData = null;
|
this.groupSummaryData = null;
|
||||||
this.groupLevelData = groupLevelData;
|
this.groupLevelData = groupLevelData;
|
||||||
this.allowedClients = allowedClients;
|
this.allowedClients = allowedClients;
|
||||||
@@ -151,6 +155,11 @@ public class GroupData {
|
|||||||
return this.parentName;
|
return this.parentName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getHierarchy() {
|
||||||
|
return this.hierarchy;
|
||||||
|
}
|
||||||
|
|
||||||
public Collection<ClientLookup> clientMembers() {
|
public Collection<ClientLookup> clientMembers() {
|
||||||
return this.clientMembers;
|
return this.clientMembers;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -40,9 +40,9 @@ public interface GroupReadPlatformService {
|
|||||||
|
|
||||||
Collection<GroupLookupData> retrieveChildGroupsbyGroupId(Long groupId);
|
Collection<GroupLookupData> retrieveChildGroupsbyGroupId(Long groupId);
|
||||||
|
|
||||||
Long retrieveTotalClients(Long groupId);
|
|
||||||
|
|
||||||
Long retrieveTotalNoOfChildGroups(Long groupId);
|
Long retrieveTotalNoOfChildGroups(Long groupId);
|
||||||
|
|
||||||
Collection<MoneyData> retrieveGroupLoanPortfolio(Long groupId);
|
Long retrieveTotalClients(String hierarchy);
|
||||||
|
|
||||||
|
Collection<MoneyData> retrieveGroupLoanPortfolio(String hierarchy);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-8
@@ -182,9 +182,9 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
Collection<StaffData> allowedStaffs = null;
|
Collection<StaffData> allowedStaffs = null;
|
||||||
Collection<GroupLookupData> childGroups = this.retrieveChildGroupsbyGroupId(groupId);
|
Collection<GroupLookupData> childGroups = this.retrieveChildGroupsbyGroupId(groupId);
|
||||||
|
|
||||||
final Long totalActiveClients = this.retrieveTotalClients(groupId);
|
final Long totalActiveClients = this.retrieveTotalClients(group.getHierarchy());
|
||||||
final Long totalChildGroups = this.retrieveTotalNoOfChildGroups(groupId);
|
final Long totalChildGroups = this.retrieveTotalNoOfChildGroups(groupId);
|
||||||
Collection<MoneyData> totalLoanPortfolio = this.retrieveGroupLoanPortfolio(groupId);
|
Collection<MoneyData> totalLoanPortfolio = this.retrieveGroupLoanPortfolio(group.getHierarchy());
|
||||||
|
|
||||||
GroupSummaryData groupSummaryData = new GroupSummaryData(totalActiveClients, totalChildGroups, totalLoanPortfolio, null);
|
GroupSummaryData groupSummaryData = new GroupSummaryData(totalActiveClients, totalChildGroups, totalLoanPortfolio, null);
|
||||||
|
|
||||||
@@ -230,11 +230,11 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long retrieveTotalClients(final Long groupId) {
|
public Long retrieveTotalClients(final String hierarchy) {
|
||||||
|
|
||||||
this.context.authenticatedUser();
|
this.context.authenticatedUser();
|
||||||
|
|
||||||
String groupHierarchy = "." + groupId + "%";
|
String groupHierarchy = hierarchy + "%";
|
||||||
String sqlTotalClients = "SELECT count(gc.client_id) FROM m_group_client gc JOIN m_group g "
|
String sqlTotalClients = "SELECT count(gc.client_id) FROM m_group_client gc JOIN m_group g "
|
||||||
+ "ON gc.group_id = g.id WHERE g.hierarchy LIKE ? ";
|
+ "ON gc.group_id = g.id WHERE g.hierarchy LIKE ? ";
|
||||||
return this.jdbcTemplate.queryForLong(sqlTotalClients, new Object[] { groupHierarchy });
|
return this.jdbcTemplate.queryForLong(sqlTotalClients, new Object[] { groupHierarchy });
|
||||||
@@ -251,13 +251,13 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<MoneyData> retrieveGroupLoanPortfolio(final Long groupId) {
|
public Collection<MoneyData> retrieveGroupLoanPortfolio(final String hierarchy) {
|
||||||
|
|
||||||
this.context.authenticatedUser();
|
this.context.authenticatedUser();
|
||||||
|
|
||||||
MoneyDataMapper rm = new MoneyDataMapper();
|
MoneyDataMapper rm = new MoneyDataMapper();
|
||||||
|
|
||||||
String groupHierarchy = "." + groupId + "%";
|
String groupHierarchy = hierarchy + "%";
|
||||||
String sql = "select " + rm.moneyDataSchema() + " FROM m_group_client gc JOIN m_group g ON gc.group_id = g.id "
|
String sql = "select " + rm.moneyDataSchema() + " FROM m_group_client gc JOIN m_group g ON gc.group_id = g.id "
|
||||||
+ "JOIN m_loan l ON l.client_id = gc.client_id LEFT JOIN m_organisation_currency oc ON oc.code = l.currency_code "
|
+ "JOIN m_loan l ON l.client_id = gc.client_id LEFT JOIN m_organisation_currency oc ON oc.code = l.currency_code "
|
||||||
+ " WHERE g.hierarchy LIKE ? GROUP BY l.currency_code ";
|
+ " WHERE g.hierarchy LIKE ? GROUP BY l.currency_code ";
|
||||||
@@ -289,7 +289,7 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
public String groupSchema() {
|
public String groupSchema() {
|
||||||
return "g.office_id as officeId, g.level_id as groupLevel , g.parent_id as parentId , o.name as officeName,"
|
return "g.office_id as officeId, g.level_id as groupLevel , g.parent_id as parentId , o.name as officeName,"
|
||||||
+ " g.id as id, g.external_id as externalId, g.name as name , s.display_name as staffName , pg.name as"
|
+ " g.id as id, g.external_id as externalId, g.name as name , s.display_name as staffName , pg.name as"
|
||||||
+ " parentName , g.staff_id as staffId from m_group g join m_office o on o.id = g.office_id left join "
|
+ " parentName , g.staff_id as staffId , g.hierarchy as hierarchy from m_group g join m_office o on o.id = g.office_id left join "
|
||||||
+ "m_staff s on s.id = g.staff_id left join m_group pg on pg.id = g.parent_id";
|
+ "m_staff s on s.id = g.staff_id left join m_group pg on pg.id = g.parent_id";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,8 +306,9 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
String parentName = rs.getString("parentName");
|
String parentName = rs.getString("parentName");
|
||||||
Long staffId = rs.getLong("staffId");
|
Long staffId = rs.getLong("staffId");
|
||||||
String staffName = rs.getString("staffName");
|
String staffName = rs.getString("staffName");
|
||||||
|
String hierarchy =rs.getString("hierarchy");
|
||||||
|
|
||||||
return new GroupData(id, officeId, officeName, name, externalId, groupLevel, parentId, parentName, staffId, staffName);
|
return new GroupData(id, officeId, officeName, name, externalId, groupLevel, parentId, parentName, staffId, staffName , hierarchy);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user