Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latest/qa main merge #1142

Merged
merged 4 commits into from
Sep 19, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ public class PrequalificationReadPlatformServiceImpl implements Prequalification

@Autowired
public PrequalificationReadPlatformServiceImpl(final PlatformSecurityContext context, final PaginationHelper paginationHelper,
final DatabaseSpecificSQLGenerator sqlGenerator, final ColumnValidator columnValidator,
final CodeValueReadPlatformService codeValueReadPlatformService, final JdbcTemplate jdbcTemplate,
GenericDataService genericDataService) {
final DatabaseSpecificSQLGenerator sqlGenerator, final ColumnValidator columnValidator,
final CodeValueReadPlatformService codeValueReadPlatformService, final JdbcTemplate jdbcTemplate,
GenericDataService genericDataService) {
this.context = context;
this.codeValueReadPlatformService = codeValueReadPlatformService;
this.jdbcTemplate = jdbcTemplate;
Expand Down Expand Up @@ -311,8 +311,7 @@ private String buildSqlStringFromBlacklistCriteria(final SearchParameters search
}

if (agencyId != null) {
if (StringUtils.equals(searchParameters.getGroupingType(), "group")
|| StringUtils.equals(searchParameters.getType(), "checked")) {
if (StringUtils.equals(searchParameters.getGroupingType(), "group") || StringUtils.equals(searchParameters.getType(), "checked")) {
extraCriteria += " and ma.id = ? ";
} else {
extraCriteria += " and individualOffice.agency_id = ? ";
Expand Down Expand Up @@ -413,107 +412,101 @@ private static final class PrequalificationsGroupMapper implements RowMapper<Gro

PrequalificationsGroupMapper() {
this.schema = """
g.id AS id,
g.prequalification_number AS prequalificationNumber,
g.STATUS,
linkedGroup.id AS linkedGroupId,
g.prequalification_duration AS prequalilficationTimespan,
g.comments,
g.created_at,
g.prequalification_type_enum AS prequalificationType,
sl.from_status AS previousStatus,
sl.sub_status AS substatus,
sl.comments AS latestComments,
assigned.username AS assignedUser,
concat( assigned.firstname, ' ', assigned.lastname ) AS assignedUserName,
sl.date_created AS statusChangedOn,
prequalification_numbers.total_requested_amount AS totalRequestedAmount,
prequalification_numbers.total_approved_amount totalApprovedAmount,
CASE

WHEN g.previous_prequalification IS NOT NULL THEN
'Recredito' ELSE 'Nuevo'
END AS processType,
CASE

WHEN mpsl.reprocess_count > 0 THEN
'Reproceso' ELSE 'Nuevo'
END AS processQuality,
concat( mu.firstname, ' ', mu.lastname ) AS statusChangedBy,
COALESCE ( ma.NAME, individualOffice.agency_name ) AS agencyName,
ma.id AS agencyId,
cg.display_name AS groupName,
g.group_name AS newGroupName,
g.group_id AS groupId,
pc.display_name AS centerName,
pc.id AS centerId,
lp.id AS productId,
fa.id AS facilitatorId,
concat( fa.firstname, ' ', fa.lastname ) AS facilitatorName,
lp.NAME AS productName,
au.firstname,
au.lastname,
greenValidCount AS greenValidationCount,
yellowValidCount AS yellowValidationCount,
orangeValidCount AS orangeValidationCount,
redValidCount AS redValidationCount\s
FROM
m_prequalification_group g
INNER JOIN m_appuser au ON au.id = g.added_by
INNER JOIN m_product_loan lp ON g.product_id = lp.id
LEFT JOIN (
SELECT
mpgm.group_id AS prequalification_id,
SUM( mpgm.requested_amount ) total_requested_amount,
SUM( mpgm.approved_amount ) total_approved_amount\s
FROM
m_prequalification_group_members mpgm\s
GROUP BY
mpgm.group_id\s
) prequalification_numbers ON prequalification_numbers.prequalification_id = g.id
LEFT JOIN (
SELECT DISTINCT
mc.office_id,
ms.agency_id,
mag.NAME AS agency_name,
mpgm.group_id,
ms.linked_office_id AS supervision_office\s
FROM
m_prequalification_group_members mpgm
INNER JOIN m_client mc ON mc.dpi = mpgm.dpi
INNER JOIN m_group_client mgc ON mgc.client_id = mc.id
INNER JOIN m_group mg ON mg.id = mgc.group_id
INNER JOIN m_group center ON center.id = mg.parent_id
INNER JOIN m_portfolio mp ON mp.id = center.portfolio_id
INNER JOIN m_supervision ms ON ms.id = mp.supervision_id
INNER JOIN m_agency mag ON mag.id = ms.agency_id\s
) individualOffice ON individualOffice.group_id = g.id
LEFT JOIN m_agency ma ON g.agency_id = ma.id
LEFT JOIN ( SELECT agency_id, linked_office_id FROM m_supervision GROUP BY agency_id ) supv ON supv.agency_id = ma.id
LEFT JOIN m_office mo ON mo.id = supv.linked_office_id
LEFT JOIN m_office moind ON moind.id = individualOffice.supervision_office
LEFT JOIN (
SELECT
mcvr.prequalification_id,
COUNT( CASE WHEN mcvr.validation_color_enum = 1 THEN 1 END ) AS greenValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 2 THEN 1 END ) AS yellowValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 3 THEN 1 END ) AS orangeValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 4 THEN 1 END ) AS redValidCount\s
FROM
m_checklist_validation_result mcvr\s
GROUP BY
mcvr.prequalification_id\s
) validations ON validations.prequalification_id = g.id
LEFT JOIN m_group cg ON cg.id = g.group_id
LEFT JOIN m_group linkedGroup ON linkedGroup.prequalification_id = g.id
LEFT JOIN m_group pc ON pc.id = g.center_id
LEFT JOIN m_appuser fa ON fa.id = g.facilitator
LEFT JOIN ( SELECT count(*) AS reprocess_count, prequalification_id, to_status FROM m_prequalification_status_log GROUP BY prequalification_id, to_status ) mpsl ON mpsl.prequalification_id = g.id\s
AND mpsl.to_status = g.
STATUS LEFT JOIN ( SELECT prequalification_id, to_status, from_status, sub_status, comments, assigned_to, updatedby_id, MAX( date_created ) AS date_created FROM m_prequalification_status_log GROUP BY prequalification_id ) sl ON sl.prequalification_id = g.id\s
AND sl.to_status = g.status
LEFT JOIN m_appuser mu ON mu.id = sl.updatedby_id
LEFT JOIN m_appuser assigned ON assigned.id = sl.assigned_to
DISTINCT g.id AS id,
g.prequalification_number AS prequalificationNumber,
g.STATUS,
linkedGroup.id AS linkedGroupId,
g.prequalification_duration AS prequalilficationTimespan,
g.comments,
g.created_at,
g.prequalification_type_enum AS prequalificationType,
sl.from_status AS previousStatus,
sl.sub_status AS substatus,
sl.comments AS latestComments,
assigned.username AS assignedUser,
concat( assigned.firstname, ' ', assigned.lastname ) AS assignedUserName,
sl.date_created AS statusChangedOn,
prequalification_numbers.total_requested_amount AS totalRequestedAmount,
prequalification_numbers.total_approved_amount totalApprovedAmount,
( CASE WHEN g.previous_prequalification IS NOT NULL THEN 'Recredito' ELSE 'Nuevo' END ) AS processType,
(CASE WHEN mpsl.reprocess_count > 0 THEN 'Reproceso' ELSE 'Nuevo' END) as processQuality,
concat( mu.firstname, ' ', mu.lastname ) AS statusChangedBy,
COALESCE ( ma.NAME, individualOffice.agency_name ) AS agencyName,
ma.id AS agencyId,
cg.display_name AS groupName,
g.group_name AS newGroupName,
g.group_id AS groupId,
pc.display_name AS centerName,
pc.id AS centerId,
lp.id AS productId,
fa.id AS facilitatorId,
concat( fa.firstname, ' ', fa.lastname ) AS facilitatorName,
lp.NAME AS productName,
au.firstname,
au.lastname,
greenValidCount AS greenValidationCount,
yellowValidCount AS yellowValidationCount,
orangeValidCount AS orangeValidationCount,
redValidCount AS redValidationCount
FROM
m_prequalification_group g
INNER JOIN m_appuser au ON au.id = g.added_by
INNER JOIN m_product_loan lp ON g.product_id = lp.id
LEFT JOIN (
SELECT
mpgm.group_id AS prequalification_id,
SUM( mpgm.requested_amount ) total_requested_amount,
SUM( mpgm.approved_amount ) total_approved_amount
FROM
m_prequalification_group_members mpgm
GROUP BY
mpgm.group_id
) prequalification_numbers ON prequalification_numbers.prequalification_id = g.id
LEFT JOIN (
SELECT DISTINCT
mc.office_id,
ms.agency_id,
mag.NAME AS agency_name,
mpgm.group_id,
ms.linked_office_id AS supervision_office
FROM
m_prequalification_group_members mpgm
INNER JOIN m_client mc ON mc.dpi = mpgm.dpi
INNER JOIN m_group_client mgc ON mgc.client_id = mc.id
INNER JOIN m_group mg ON mg.id = mgc.group_id
INNER JOIN m_group center ON center.id = mg.parent_id
INNER JOIN m_portfolio mp ON mp.id = center.portfolio_id
INNER JOIN m_supervision ms ON ms.id = mp.supervision_id
INNER JOIN m_agency mag ON mag.id = ms.agency_id
) individualOffice ON individualOffice.group_id = g.id
LEFT JOIN m_agency ma ON g.agency_id = ma.id
LEFT JOIN ( SELECT agency_id, linked_office_id FROM m_supervision GROUP BY agency_id ) supv ON supv.agency_id = ma.id
LEFT JOIN m_office mo ON mo.id = supv.linked_office_id
LEFT JOIN m_office moind ON moind.id = individualOffice.supervision_office
LEFT JOIN (
SELECT
mcvr.prequalification_id,
COUNT( CASE WHEN mcvr.validation_color_enum = 1 THEN 1 END ) AS greenValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 2 THEN 1 END ) AS yellowValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 3 THEN 1 END ) AS orangeValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 4 THEN 1 END ) AS redValidCount
FROM
m_checklist_validation_result mcvr
GROUP BY
mcvr.prequalification_id
) validations ON validations.prequalification_id = g.id
LEFT JOIN m_group cg ON cg.id = g.group_id
LEFT JOIN m_group linkedGroup ON linkedGroup.prequalification_id = g.id
LEFT JOIN m_group pc ON pc.id = g.center_id
LEFT JOIN m_prequalification_status_log sl ON sl.prequalification_id = g.id
AND sl.to_status = g.STATUS
AND sl.id = ( SELECT MAX( id ) FROM m_prequalification_status_log WHERE prequalification_id = g.id AND sl.to_status = g.STATUS )
LEFT JOIN m_appuser assigned ON assigned.id = sl.assigned_to
LEFT JOIN m_appuser mu ON mu.id = sl.updatedby_id
LEFT JOIN m_appuser fa ON fa.id = g.facilitator
LEFT JOIN ( SELECT count(*) AS reprocess_count, prequalification_id, to_status FROM
m_prequalification_status_log GROUP BY prequalification_id, to_status )
mpsl ON mpsl.prequalification_id = g.id
""";

this.grpSchema = """
Expand Down
Loading