review:GWM
This commit is contained in:
parent
40e2bb352a
commit
7539642168
@ -3,6 +3,7 @@ const { logMsg } = require('../services/logger.js');
|
||||
const Helper = require('../services/cibil.controller.helper.js');
|
||||
const DataInsertHelper = require('../services/cibil.datainsert.helper.js');
|
||||
const { Op } = require('sequelize');
|
||||
const moment = require('moment');
|
||||
|
||||
|
||||
// landing page list of all pan number and reference number from commercial & consumer against losid
|
||||
@ -358,7 +359,7 @@ exports.consolidatedActiveClosedLoanSplitUp =async (req, res) =>
|
||||
|
||||
|
||||
|
||||
|
||||
//split up apis
|
||||
|
||||
|
||||
|
||||
@ -555,7 +556,55 @@ exports.ConsolidatedSanctionAmountSplitUp =async (req, res) =>
|
||||
|
||||
|
||||
|
||||
|
||||
//merge-unmerge api's
|
||||
exports.ConsolidatedActiveAndClosedLoansReviewAction =async (req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
LoanData = await sequelize.query("SELECT [losid],STRING_AGG(ref_no,',')as ref_no,STRING_AGG(consumer_name, ',') as consumer_name, [account_type],count(*) as loan_count, [ownership], [reported_and_certified_date], [opened_date], [sanctioned_amount], [current_balance], [repayment_tenure], [emi_amount], [overdue_amount], [status], [current_dpd], [highest_dpd_month_wise_bucket_or_count_0_to_6], [highest_dpd_month_wise_bucket_or_count_07_to_12], [highest_dpd_month_wise_bucket_or_count_13_to_24], [highest_dpd_month_wise_bucket_or_count_25_to_36], [DateClosed], [grp_str] FROM [out_active_and_closed_loans_details] AS [OutputActiveAndClosedLoans] WHERE [OutputActiveAndClosedLoans].[losid] = '"+req.query.losid+"' GROUP BY [grp_str], [losid], [account_type], [ownership], [reported_and_certified_date], [opened_date], [sanctioned_amount], [current_balance], [repayment_tenure], [emi_amount], [overdue_amount], [status], [current_dpd], [highest_dpd_month_wise_bucket_or_count_0_to_6], [highest_dpd_month_wise_bucket_or_count_07_to_12], [highest_dpd_month_wise_bucket_or_count_13_to_24], [highest_dpd_month_wise_bucket_or_count_25_to_36], [DateClosed]");
|
||||
if(LoanData.length != 0)
|
||||
{
|
||||
|
||||
var LoanDataPromises = new Promise(async(resolve, reject) => {
|
||||
FinalLoanData = [];
|
||||
LoanData[0].forEach(async(value,index,array) => {
|
||||
if(value.loan_count == 1)
|
||||
{
|
||||
Object.assign(value , {subValue : [] });
|
||||
if (index === array.length -1) { resolve(FinalLoanData); }
|
||||
}else{
|
||||
subValue = await OutputActiveAndClosedLoans.findAll({raw:true,where:{losid:value.losid,grp_str:value.grp_str}})
|
||||
.catch(err=>{ });
|
||||
Object.assign(value , {subValue : subValue });
|
||||
if (index === array.length -1) { resolve(FinalLoanData); }
|
||||
}
|
||||
|
||||
FinalLoanData.push(value);
|
||||
|
||||
});
|
||||
});
|
||||
LoanDataPromises.then(async(FinalLoanData)=>{
|
||||
setTimeout(() => {
|
||||
res.send({'status':200 , message:"Success." ,'data': FinalLoanData});
|
||||
}, 1000);
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
else{
|
||||
res.send({'status':400 , message:"Failed." ,'data': "No Data"});
|
||||
}
|
||||
|
||||
|
||||
} catch(err) {
|
||||
res.status(500).send({'status':404,
|
||||
message: err.message || "Some error occurred while inserting statements." ,'data': "No data"
|
||||
}); } //end of try catch
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -617,7 +666,7 @@ exports.testone =async (req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
data = await Helper.cibilInputDataApiCall('MW00045413','AAACR4282J',2);
|
||||
data = await Helper.cibilInputDataApiCall('MW00045413','AAACR4282J',1);
|
||||
|
||||
DataInsertHelper.commercialDataInsert(data);
|
||||
res.send(data);
|
||||
@ -638,8 +687,18 @@ exports.test2 =async (req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
//token = await Helper.getLoginToken()
|
||||
data = await Helper.cibilInputDataApiCall('MW00045413','AAACR4282J',1);
|
||||
res.send(data);
|
||||
// beforedate = data.lstConsumerBorrowersDetails[0].dateTimeProcessed;
|
||||
// var date= moment(beforedate).format('YYYY-MM-DD');
|
||||
// console.log(date);
|
||||
|
||||
|
||||
|
||||
req_obj ={
|
||||
"losid":'MW112233',
|
||||
Me
|
||||
}
|
||||
|
||||
|
||||
} catch(err) {
|
||||
|
||||
@ -7,7 +7,7 @@ module.exports = app => {
|
||||
|
||||
// router.get("/testone", Cibilcontroller.testone);
|
||||
// router.get("/starter", Cibilcontroller.starter);
|
||||
// router.get("/test2", Cibilcontroller.test2);
|
||||
router.get("/test2", Cibilcontroller.test2);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
@ -381,6 +381,26 @@ router.get("/consolidatedSanctionAmountSplitUp", Cibilcontroller.ConsolidatedSan
|
||||
router.get("/consolidatedActiveClosedLoanSplitUp", Cibilcontroller.consolidatedActiveClosedLoanSplitUp);
|
||||
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/ConsolidatedActiveAndClosedLoansReviewAction:
|
||||
* get:
|
||||
* summary: landing Page Details
|
||||
* description: Get active & closed loans Data
|
||||
* parameters:
|
||||
* - in: query
|
||||
* name: losid
|
||||
* schema:
|
||||
* type: string
|
||||
* required: true
|
||||
* example: MW112233
|
||||
* responses:
|
||||
* 200:
|
||||
* description: success
|
||||
*/
|
||||
router.get("/ConsolidatedActiveAndClosedLoansReviewAction", Cibilcontroller.ConsolidatedActiveAndClosedLoansReviewAction);
|
||||
|
||||
|
||||
// routes started here
|
||||
app.use('/api', router);
|
||||
};
|
||||
|
||||
@ -64,10 +64,10 @@ function findBucketCount(sk_array,dpd_date)
|
||||
}
|
||||
|
||||
|
||||
function cibilInputDataApiCall(losid,pan_no,applicant_type) {
|
||||
async function cibilInputDataApiCall(losid,pan_no,applicant_type) {
|
||||
try {
|
||||
CIBIL_URL = process.env.CIBIL_DATA_URL;
|
||||
token = process.env.CIBIL_URL_TOKEN;
|
||||
token = await getLoginToken();
|
||||
request_object = {
|
||||
"losid": losid,
|
||||
"panNo": pan_no,
|
||||
|
||||
@ -999,33 +999,34 @@ async function consumerIntermediateDataInsert(losid,refNo)
|
||||
try
|
||||
{
|
||||
|
||||
ConBorrowDetailData = await ConBorrowDetail.findAll({attributes: ['losid','MemberReferenceNumber','ConsumerNameField1','ConsumerNameField2','ConsumerNameField3','ConsumerNameField4','ConsumerNameField5'],raw:true ,where:{losid:'MW112233'},include:[{model:ConIDDetail , attributes: ['IDNumber'],where:{IDType:'Income Tax ID Number'}}]});
|
||||
var ConBorrowDetailDataInsert = new Promise(async(resolve, reject) => {
|
||||
ConBorrowDetailArray = [];
|
||||
ConBorrowDetailData.forEach(async(value,index,array) => {
|
||||
ConBorrowDetailDataObj = {
|
||||
losid : value.losid,
|
||||
ReferenceNumber : value.MemberReferenceNumber,
|
||||
ConsumerNameField1 : value.ConsumerNameField1,
|
||||
ConsumerNameField2 : value.ConsumerNameField2,
|
||||
ConsumerNameField3 : value.ConsumerNameField3,
|
||||
ConsumerNameField4 : value.ConsumerNameField4,
|
||||
ConsumerNameField5 : value.ConsumerNameField5,
|
||||
PAN : value['ConIDDetails.IDNumber'],
|
||||
cibil_type : 1
|
||||
}
|
||||
ConBorrowDetailArray.push(ConBorrowDetailDataObj);
|
||||
if (index === array.length -1) { resolve(ConBorrowDetailArray); }
|
||||
});
|
||||
});
|
||||
ConBorrowDetailDataInsert.then(async(ConBorrowDetailArray)=>{
|
||||
await InBorrowerDetail.bulkCreate(ConBorrowDetailArray);
|
||||
ConBorrowDetailData = await ConBorrowDetail.findAll({attributes: ['losid','MemberReferenceNumber','ConsumerNameField1','ConsumerNameField2','ConsumerNameField3','ConsumerNameField4','ConsumerNameField5','DateTimeProcessed'],raw:true ,where:{losid:losid,MemberReferenceNumber:refNo},include:[{model:ConIDDetail , attributes: ['IDNumber'],where:{IDType:'Income Tax ID Number'}}]});
|
||||
|
||||
|
||||
ConBorrowDetailData.forEach(async(value,index,array) => {
|
||||
ConBorrowDetailDataObj = {
|
||||
losid : value.losid,
|
||||
ReferenceNumber : value.MemberReferenceNumber,
|
||||
ConsumerNameField1 : value.ConsumerNameField1,
|
||||
ConsumerNameField2 : value.ConsumerNameField2,
|
||||
ConsumerNameField3 : value.ConsumerNameField3,
|
||||
ConsumerNameField4 : value.ConsumerNameField4,
|
||||
ConsumerNameField5 : value.ConsumerNameField5,
|
||||
PAN : value['ConIDDetails.IDNumber'],
|
||||
cibil_type : 1
|
||||
}
|
||||
await InBorrowerDetail.update(ConBorrowDetailDataObj,{where:{losid:ConBorrowDetailDataObj.losid,PAN:ConBorrowDetailDataObj.PAN,cibil_type:1}});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
//month bucket count
|
||||
// DateTimeProcessed = ConBorrowDetailData
|
||||
end_date = '2022-05-05'
|
||||
sk = await Helper.createSkeleton(end_date);
|
||||
ConEnquiryDetailData = await ConEnquiryDetail.findAll({attributes: ['losid','MemberReferenceNumber','DateOfEnquiry','EnquiryPurpose','EnquiryAmount'],raw:true ,where:{losid:'MW112233'}});
|
||||
|
||||
|
||||
ConEnquiryDetailData = await ConEnquiryDetail.findAll({attributes: ['losid','MemberReferenceNumber','DateOfEnquiry','EnquiryPurpose','EnquiryAmount'],raw:true ,where:{losid:losid,MemberReferenceNumber:refNo}});
|
||||
var ConEnquiryDetailDataInsert = new Promise(async(resolve, reject) => {
|
||||
ConEnquiryDetailArray = [];
|
||||
ConEnquiryDetailData.forEach(async(value,index,array) => {
|
||||
@ -1050,11 +1051,8 @@ async function consumerIntermediateDataInsert(losid,refNo)
|
||||
|
||||
|
||||
|
||||
end_date = '2022-05-05'
|
||||
sk = await Helper.createSkeleton(end_date);
|
||||
ConAccountTranscationData = await ConAccountTranscation.findAll({attributes: ['losid','AccountTranDetailsID','MemberReferenceNumber','AccountType','OwnershipIndicator','DateOpenedDisbursed','DateReportedAndCertified','HighCreditSanctionedAmount','CurrentBalance','AmountOverdue','CreditLimit','RepaymentTenure','EMIAmount','WrittenOffAndSettledStatus','DateClosed'],raw:true ,where:{losid:'MW112233'}});
|
||||
|
||||
|
||||
ConAccountTranscationData = await ConAccountTranscation.findAll({attributes: ['losid','AccountTranDetailsID','MemberReferenceNumber','AccountType','OwnershipIndicator','DateOpenedDisbursed','DateReportedAndCertified','HighCreditSanctionedAmount','CurrentBalance','AmountOverdue','CreditLimit','RepaymentTenure','EMIAmount','WrittenOffAndSettledStatus','DateClosed'],raw:true ,where:{losid:losid,MemberReferenceNumber:refNo}});
|
||||
ConAccountTranscationData.forEach(async(value) => {
|
||||
month_bucket_result = await Helper.findBucketCount(sk,value.DateOpenedDisbursed);
|
||||
Num = value.MemberReferenceNumber;
|
||||
@ -1142,9 +1140,10 @@ async function commercialIntermediateDataInsert(losid,refNo)
|
||||
{
|
||||
try
|
||||
{
|
||||
BorrowerProfileData = await BorrowerProfile.findAll({attributes: ['losid','ApplicationRefno','EnqInfoBorrowerName','EnqInfoPan'],raw:true ,where:{losid:'MW112233'}});
|
||||
var BorrowerProfileDataInsert = new Promise(async(resolve, reject) => {
|
||||
BorrowerProfileArray = [];
|
||||
|
||||
|
||||
BorrowerProfileData = await BorrowerProfile.findAll({attributes: ['losid','ApplicationRefno','EnqInfoBorrowerName','EnqInfoPan'],raw:true ,where:{losid:losid,ApplicationRefno:refNo}});
|
||||
|
||||
BorrowerProfileData.forEach(async(value,index,array) => {
|
||||
BorrowerProfileDataObj = {
|
||||
losid : value.losid,
|
||||
@ -1156,22 +1155,43 @@ async function commercialIntermediateDataInsert(losid,refNo)
|
||||
ConsumerNameField5 : null,
|
||||
PAN : value.EnqInfoPan,
|
||||
cibil_type : 2
|
||||
}
|
||||
BorrowerProfileArray.push(BorrowerProfileDataObj);
|
||||
if (index === array.length -1) { resolve(BorrowerProfileArray); }
|
||||
});
|
||||
});
|
||||
BorrowerProfileDataInsert.then(async(BorrowerProfileArray)=>{
|
||||
await InBorrowerDetail.bulkCreate(BorrowerProfileArray);
|
||||
}
|
||||
await InBorrowerDetail.update(BorrowerProfileDataObj,{where:{losid:BorrowerProfileDataObj.losid,PAN:BorrowerProfileDataObj.PAN,cibil_type:2}});
|
||||
});
|
||||
|
||||
// BorrowerProfileData = await BorrowerProfile.findAll({attributes: ['losid','ApplicationRefno','EnqInfoBorrowerName','EnqInfoPan'],raw:true ,where:{losid:'MW112233'}});
|
||||
// var BorrowerProfileDataInsert = new Promise(async(resolve, reject) => {
|
||||
// BorrowerProfileArray = [];
|
||||
// BorrowerProfileData.forEach(async(value,index,array) => {
|
||||
// BorrowerProfileDataObj = {
|
||||
// losid : value.losid,
|
||||
// ReferenceNumber : value.ApplicationRefno,
|
||||
// ConsumerNameField1 : value.EnqInfoBorrowerName,
|
||||
// ConsumerNameField2 : null,
|
||||
// ConsumerNameField3 : null,
|
||||
// ConsumerNameField4 : null,
|
||||
// ConsumerNameField5 : null,
|
||||
// PAN : value.EnqInfoPan,
|
||||
// cibil_type : 2
|
||||
// }
|
||||
// BorrowerProfileArray.push(BorrowerProfileDataObj);
|
||||
// if (index === array.length -1) { resolve(BorrowerProfileArray); }
|
||||
// });
|
||||
// });
|
||||
// BorrowerProfileDataInsert.then(async(BorrowerProfileArray)=>{
|
||||
// await InBorrowerDetail.bulkCreate(BorrowerProfileArray);
|
||||
// });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
end_date = '2022-05-05'
|
||||
sk = await Helper.createSkeleton(end_date);
|
||||
ComEnquiryDetailData = await EnquiryDetail.findAll({attributes: ['losid','ApplicationRefno','EnquiryDetailsEnquiryDt','EnquiryDetailsEnquiryPurpose','EnquiryDetailsEnquiryAmt'],raw:true ,where:{losid:'MW112233'}});
|
||||
|
||||
|
||||
|
||||
ComEnquiryDetailData = await EnquiryDetail.findAll({attributes: ['losid','ApplicationRefno','EnquiryDetailsEnquiryDt','EnquiryDetailsEnquiryPurpose','EnquiryDetailsEnquiryAmt'],raw:true ,where:{losid:losid,ApplicationRefno:refNo}});
|
||||
var ComEnquiryDetailDataInsert = new Promise(async(resolve, reject) => {
|
||||
ComEnquiryDetailArray = [];
|
||||
ComEnquiryDetailData.forEach(async(value,index,array) => {
|
||||
@ -1199,10 +1219,8 @@ async function commercialIntermediateDataInsert(losid,refNo)
|
||||
|
||||
|
||||
|
||||
end_date = '2022-05-05'
|
||||
sk = await Helper.createSkeleton(end_date);
|
||||
ComCreditFacilityCurrentDetailData = await CreditFacilityCurrentDetail.findAll({attributes: ['losid','ApplicationRefno','CreditFacilityCDcfSrNo','CreditFacilityCDcfType','CreditFacilityCDDatesSanctionedDt','CreditFacilityCDLstReportedDate','CreditFacilityCDAmtSanctionedAmt','CreditFacilityCDAmtoutstandingBalance','CreditFacilityCDAmtOverdue','CreditFacilityCDODTenure','CreditFacilityCDAmtinstallmentAmt','CreditFacilityCDStatus','CreditFacilityCDDatesLoanExpiryDt'],raw:true ,where:{losid:'MW112233'}});
|
||||
|
||||
|
||||
ComCreditFacilityCurrentDetailData = await CreditFacilityCurrentDetail.findAll({attributes: ['losid','ApplicationRefno','CreditFacilityCDcfSrNo','CreditFacilityCDcfType','CreditFacilityCDDatesSanctionedDt','CreditFacilityCDLstReportedDate','CreditFacilityCDAmtSanctionedAmt','CreditFacilityCDAmtoutstandingBalance','CreditFacilityCDAmtOverdue','CreditFacilityCDODTenure','CreditFacilityCDAmtinstallmentAmt','CreditFacilityCDStatus','CreditFacilityCDDatesLoanExpiryDt'],raw:true ,where:{losid:losid,ApplicationRefno:refNo}});
|
||||
ComCreditFacilityCurrentDetailData.forEach(async(value) => {
|
||||
month_bucket_result = await Helper.findBucketCount(sk,value.DateOpenedDisbursed);
|
||||
Num = value.ApplicationRefno;
|
||||
|
||||
8
package-lock.json
generated
8
package-lock.json
generated
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "smc_cet_creditpd_backend",
|
||||
"name": "smc_cet_cibil_staging",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
@ -2371,9 +2371,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.29.3",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
|
||||
"integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw=="
|
||||
"version": "2.29.4",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
|
||||
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
|
||||
},
|
||||
"moment-timezone": {
|
||||
"version": "0.5.34",
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
"dotenv": "^10.0.0",
|
||||
"express": "^4.17.1",
|
||||
"log4js": "^6.3.0",
|
||||
"moment": "^2.29.4",
|
||||
"mssql": "^7.2.0",
|
||||
"request": "^2.88.2",
|
||||
"sequelize": "^6.6.5",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user