From a3487c78bda48b4dcf7042429f053c3571e0a6fe Mon Sep 17 00:00:00 2001 From: lakshmikommalapati <lakshmi.kommalapati@tarento.com> Date: Thu, 6 Apr 2023 12:05:44 +0530 Subject: [PATCH] update in CompetencyExcelParser class --- .../app/handlers/CompetencyExcelParser.scala | 85 ++++++++++++++++++- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/assessment-api/assessment-service/app/handlers/CompetencyExcelParser.scala b/assessment-api/assessment-service/app/handlers/CompetencyExcelParser.scala index 0e9999fa5..0b8f29369 100644 --- a/assessment-api/assessment-service/app/handlers/CompetencyExcelParser.scala +++ b/assessment-api/assessment-service/app/handlers/CompetencyExcelParser.scala @@ -1,5 +1,6 @@ package handlers +import handlers.CompetencyExcelParser.fracclMap import org.apache.poi.ss.usermodel.DataFormatter import org.apache.poi.xssf.usermodel.{XSSFRow, XSSFSheet, XSSFWorkbook} import org.slf4j.{Logger, LoggerFactory} @@ -9,6 +10,7 @@ import java.util import scala.collection.JavaConverters.{asScalaIteratorConverter, iterableAsScalaIterableConverter, mapAsScalaMapConverter} import scala.collection.mutable import scala.collection.mutable.ListBuffer +import scala.sys.SystemProperties.headless.key case class Activity(code: String, label: String) @@ -23,6 +25,10 @@ object CompetencyExcelParser { private var listData :util.Map[String, AnyRef] = new util.HashMap[String, AnyRef] private var fracclMap: mutable.Map[String, AnyRef] = mutable.Map.empty private var competencyMap: util.Map[String, AnyRef] = new util.HashMap[String,AnyRef]() + var dataList: List[util.Map[String, AnyRef]] = List.empty + var data: util.Map[String, AnyRef] = new util.HashMap[String, AnyRef]() + var map: List[util.Map[String, AnyRef]] = List.empty + var dataMap: util.Map[String, AnyRef] = new util.HashMap[String, AnyRef]() def parseCompetencyData(xssFRow: XSSFRow) = { val rowContent = (0 until xssFRow.getPhysicalNumberOfCells) @@ -48,7 +54,9 @@ object CompetencyExcelParser { listData.put("compefracclMaptency",competency) listData.put("competencyLevelId",competencyLevelId) fracclMap.put(competencyMapping.concat(activityId), listData) - listData + fetchDataFromFracclMap(competencyMapping.concat(activityId), fracclMap) + // fetchsheetdata(listData) + //listData } @@ -81,7 +89,9 @@ object CompetencyExcelParser { } else { None } + }).toList + getData } @@ -91,11 +101,13 @@ object CompetencyExcelParser { val finalData: mutable.Map[String, List[Map[String, AnyRef]]] = mutable.Map.empty try { val workbook = new XSSFWorkbook(new FileInputStream(file)) + //getData = getCompetenciesData(workbook.getSheetAt(1)) (1 until workbook.getNumberOfSheets) .foreach(index => { - if(index==1) { + getData = getCompetenciesData(workbook.getSheetAt(index)) - } + + getSheetBasedOnRoleLabel(getData,workbook.getSheetAt(index)) val convertedData = getData.map(_.asScala.toMap) finalData += (workbook.getSheetName(index) -> convertedData) @@ -115,5 +127,70 @@ object CompetencyExcelParser { javaMap } + def fetchDataFromFracclMap(competencylevel:String,fracclMap:mutable.Map[String, AnyRef]):util.Map[String, AnyRef]= { + logger.info("Enter into the fetchDataFromFracclMap") + + val competencyLevelValue= fracclMap.get(competencylevel) + val key:String="roleLabel" + val levelValue: AnyRef = competencyLevelValue match { + case Some(x) => { + val dataLabel = x.asInstanceOf[util.Map[String, AnyRef]] + var valueOption: AnyRef = dataLabel.get(key) + valueOption + } + case None => "None" + + + } + val activity: AnyRef = /*levelValue match{ + case levelValue=>*/ + competencyLevelValue match { + case Some(x) => { + val dataLabel = x.asInstanceOf[util.Map[String, AnyRef]] + var valueOption: AnyRef = dataLabel.get("activityLabel") + valueOption + } + case None => "None" + + + } + + data.put(competencylevel, activity) + + //dataList=dataList:+data + + dataMap.put(levelValue.toString,data) + dataMap -} + } + + def getSheetBasedOnRoleLabel(data:List[util.Map[String, AnyRef]], sheet: XSSFSheet):util.Map[String,AnyRef]={ + logger.info("Enter into the getSheetBasedOnRoleLabel") + val sheetMap:util.Map[String,AnyRef]=new util.HashMap[String,AnyRef]() + val keyValue = data.flatMap(m => m.keySet().asScala).distinct.toList + val value = data.flatMap(n=> n.values().asScala).distinct + val activity:String=null + /*value.foreach{v=> + activity= v match{ + case Some(x)=>{ + val activityLabel:String=x.asInstanceOf + } + } + }*/ + // val innerValue = data.flatMap(_.get(key)).map(_.innerValue).getOrElse(Seq.empty) + keyValue.foreach(k=> + if(k.equals(sheet.getSheetName) ){ + + + } else { + + } + ) + + sheetMap.put("key","value").asInstanceOf[util.Map[String,AnyRef]] + } + + + + + } -- GitLab