=== modified file 'local/in/dhis-web-maintenance-ccem/src/main/java/org/hisp/dhis/ccem/importexport/action/CSVImportAction.java' --- local/in/dhis-web-maintenance-ccem/src/main/java/org/hisp/dhis/ccem/importexport/action/CSVImportAction.java 2013-11-27 19:15:40 +0000 +++ local/in/dhis-web-maintenance-ccem/src/main/java/org/hisp/dhis/ccem/importexport/action/CSVImportAction.java 2013-11-28 12:35:18 +0000 @@ -128,12 +128,16 @@ Map> lookupDataMap = getLookupData( uncompressedFolderPath ); + Map> assetMap = getAssetData( uncompressedFolderPath ); + /** * TODO - Need to use parameter / constant for timebeing directly used name */ ModelType refrigeratorModel = modelTypeService.getModelTypeByName( "Refrigerator Catalog" ); - importAdminHierarchy( uncompressedFolderPath ); + Map orgUnitMap = importAdminHierarchy( uncompressedFolderPath ); + + Map faclityMap = importFacility( uncompressedFolderPath, orgUnitMap ); //importRefrigeratorCatalogData( uncompressedFolderPath, refrigeratorModel, lookupDataMap ); @@ -159,8 +163,52 @@ return SUCCESS; } - - public void importAdminHierarchy( String adminHierarchyCSVFilePath ) + + + public Map importFacility( String facilityCSVFilePath, Map orgUnitMap ) + { + facilityCSVFilePath += File.separator + "Facility.csv"; + + try + { + CsvReader csvReader = new CsvReader( facilityCSVFilePath, ',', Charset.forName( "UTF-8" ) ); + csvReader.readHeaders(); + String headers[] = csvReader.getHeaders(); + + Integer colCount = headers.length; + while( csvReader.readRecord() ) + { + String nodeId = csvReader.get( "FacilityID" ); + String ouName = csvReader.get( "FacilityName" ); + //Integer ouLevel = Integer.parseInt( csvReader.get( "Level" ) ); + Integer parentId = Integer.parseInt( csvReader.get( "AdminRegion" ) ); + //String ouCode = csvReader.get( "Code" ); + + //if( ouCode != null && ouCode.trim().equals("") ) + // ouCode = null; + + OrganisationUnit organisationUnit = new OrganisationUnit( ouName, ouName, null, new Date(), null, true, parentId+"" ); + if( parentId != -1 ) + { + OrganisationUnit parentOU = orgUnitMap.get( parentId ); + organisationUnit.setParent( parentOU ); + int orgUnitId = organisationUnitService.addOrganisationUnit( organisationUnit ); + orgUnitMap.put( Integer.parseInt( nodeId ), organisationUnit ); + } + } + + csvReader.close(); + } + catch( Exception e ) + { + e.printStackTrace(); + } + + return orgUnitMap; + } + + + public Map importAdminHierarchy( String adminHierarchyCSVFilePath ) { adminHierarchyCSVFilePath += File.separator + "AdminHierarchy.csv"; @@ -242,6 +290,7 @@ e.printStackTrace(); } + return orgUnitMap; } public void importRefrigeratorCatalogData( String refrigeratorCatalogDataCSVFilePath, ModelType refrigeratorModel, Map> lookupDataMap ) @@ -340,6 +389,38 @@ } } + public Map> getAssetData( String assetListCSVFilePath ) + { + Map> assetMap = new HashMap>(); + + assetListCSVFilePath += File.separator + "AssetList.csv"; + + try + { + CsvReader csvReader = new CsvReader( assetListCSVFilePath, ',', Charset.forName( "UTF-8" ) ); + + csvReader.readHeaders(); + + while( csvReader.readRecord() ) + { + Integer equipmentId = Integer.parseInt( csvReader.get( "EquipmentID" ) ); + List tempList = new ArrayList(); + tempList.add( csvReader.get( "FacilityID" ) ); + tempList.add( csvReader.get( "AssetType" ) ); + + assetMap.put( equipmentId, tempList ); + } + + csvReader.close(); + } + catch( Exception e ) + { + e.printStackTrace(); + } + + return assetMap; + } + public Map> getLookupData( String lookupsCSVFilePath ) { Map> lookupDataMap = new HashMap>(); @@ -385,7 +466,7 @@ return lookupDataMap; } - + public String unZip( ZipInputStream zis ) { byte[] buffer = new byte[1024];