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