Package org.jallinone.system.importdata.java

Examples of org.jallinone.system.importdata.java.ETLProcessFieldVO


      Response res = bean.loadETLProcessFields(processVO.getProgressiveSYS23(),username);

      if (!res.isError()) {
        java.util.List vos = ( (VOListResponse) res).getRows();
        HashMap map = new HashMap();
        ETLProcessFieldVO vo = null;
        for (int i = 0; i < vos.size(); i++) {
          vo = (ETLProcessFieldVO) vos.get(i);
          map.put(new FieldEntry(vo.getLanguageCodeSYS24(),vo.getFieldNameSYS24()), vo);
        }

        ArrayList rows = new ArrayList();
        SelectableFieldVO selVO = null;
        ImportDescriptorVO impVO = (ImportDescriptorVO) Class.forName(processVO.getClassNameSYS23()).newInstance();
        FieldEntry pk = null;
        for (int i = 0; i < impVO.getFields().length; i++) {
          pk = new FieldEntry(ApplicationConsts.JOLLY, impVO.getFields()[i]);
          if (map.containsKey(pk)) {
            vo = (ETLProcessFieldVO) map.get(pk);

            selVO = new SelectableFieldVO();
            selVO.setField(vo);
            selVO.setSelected(true);
            selVO.setLabel(p.getProperty(impVO.getLabels()[i]));
            selVO.setRequired(impVO.getRequiredFields().contains(impVO.getFields()[i]));
            rows.add(selVO);
          }
          else {
            vo = new ETLProcessFieldVO();
            vo.setFieldNameSYS24(impVO.getFields()[i]);
            vo.setLanguageCodeSYS24(ApplicationConsts.JOLLY);
            vo.setProgressiveSys23SYS24(processVO.getProgressiveSYS23());

            selVO = new SelectableFieldVO();
            selVO.setField(vo);
            selVO.setSelected(false);
            selVO.setLabel(p.getProperty(impVO.getLabels()[i]));
            selVO.setRequired(impVO.getRequiredFields().contains(impVO.
                getFields()[i]));
            rows.add(selVO);
          }
        } // end for

        // retrieve supported languages...
        res = langsBean.loadLanguages( serverLanguageId,username);
        if (res.isError())
          throw new Exception(res.getErrorMessage());
        java.util.List langsVO = ( (VOListResponse) res).getRows();

        // for each progressive SYS10 x language...
        Iterator it = impVO.getProgressiveSys10Fields().keySet().iterator();
        String field = null;
        LanguageVO langVO = null;
        while(it.hasNext()) {
          field = it.next().toString();
          for(int i=0;i<langsVO.size();i++) {
            langVO = (LanguageVO)langsVO.get(i);
            pk = new FieldEntry(langVO.getLanguageCodeSYS09(),field);
            if (map.containsKey(pk)) {
              vo = (ETLProcessFieldVO)map.get(new FieldEntry(langVO.getLanguageCodeSYS09(),field));

              selVO = new SelectableFieldVO();
              selVO.setField(vo);
              selVO.setSelected(true);
              selVO.setLabel(
                p.getProperty((String)impVO.getProgressiveSys10Fields().get(field))+
                " "+
                langVO.getDescriptionSYS09()
              );
              selVO.setRequired(impVO.getRequiredFields().contains(field));
              rows.add(selVO);
            }
            else {
              vo = new ETLProcessFieldVO();
              vo.setFieldNameSYS24(field);
              vo.setLanguageCodeSYS24(langVO.getLanguageCodeSYS09());
              vo.setProgressiveSys23SYS24(processVO.getProgressiveSYS23());

              selVO = new SelectableFieldVO();
              selVO.setField(vo);
              selVO.setSelected(false);
              selVO.setLabel(
                p.getProperty((String)impVO.getProgressiveSys10Fields().get(field))+
                " "+
                langVO.getDescriptionSYS09()
              );
              selVO.setRequired(impVO.getRequiredFields().contains(field));
              rows.add(selVO);
            }
          }

        } // end while on descriptions...

        // if a hierarchy level has been defined, create an object for each supported language...
        if (processVO.getProgressiveHIE02()!=null) {
          field = impVO.getHierarchyField();

          for(int i=0;i<langsVO.size();i++) {
            langVO = (LanguageVO)langsVO.get(i);
            pk = new FieldEntry(langVO.getLanguageCodeSYS09(),field);

            if (map.containsKey(pk)) {
              vo = (ETLProcessFieldVO)map.get(pk);

              selVO = new SelectableFieldVO();
              selVO.setField(vo);
              selVO.setSelected(true);
              selVO.setLabel(
                  p.getProperty("hierarchy") +
                  " " +
                  langVO.getDescriptionSYS09()
                  );
              selVO.setRequired(impVO.getRequiredFields().contains(field));
              rows.add(selVO);
            }
            else {

              vo = new ETLProcessFieldVO();
              vo.setFieldNameSYS24(field);
              vo.setLanguageCodeSYS24(langVO.getLanguageCodeSYS09());
              vo.setProgressiveSys23SYS24(processVO.getProgressiveSYS23());

              selVO = new SelectableFieldVO();
              selVO.setField(vo);
              selVO.setSelected(false);
              selVO.setLabel(
View Full Code Here


      row.add(value);
    }


    ETLProcessFieldVO vo = null;
    Object[] values = new Object[fields.size()];
    for(i=0;i<fields.size();i++) {
      vo = (ETLProcessFieldVO)fields.get(i);
      values[i] = convertObj(
        true,
        vo.getDateFormatSYS24(),
        row.get(vo.getPosSYS24().intValue()-1),
        (Class)indexes.get(vo.getFieldNameSYS24())
      );
    }
    return values;
  }
View Full Code Here

    }
    if (attempts>=10)
      return null;


    ETLProcessFieldVO vo = null;
    Object[] values = new Object[fields.size()];
    HSSFCell cell = null;
    Class clazz = null;
    Object value = null;
    for(int i=0;i<fields.size();i++) {
      vo = (ETLProcessFieldVO)fields.get(i);
      clazz = (Class)indexes.get(vo.getFieldNameSYS24());
      cell = row.getCell((short)(vo.getPosSYS24().shortValue()-1));
      if (cell!=null) {
        try {
          if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
            value = new Double(cell.getNumericCellValue());
          }
          else if (cell.getCellType() == cell.CELL_TYPE_STRING) {
            value = cell.getStringCellValue();
          }
          else {
            value = cell.getDateCellValue();
          }
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
      else
        value = null;

      values[i] = convertObj(
        cell.getCellType() == cell.CELL_TYPE_STRING,
        vo.getDateFormatSYS24(),
        value,
        clazz
      );
    }
    return values;
View Full Code Here

      selPstmt = new PreparedStatement[impVO.getTableNames().length];

      // prepare SQL for insert ops...
      String fieldName = null;
      String insSQL = null;
      ETLProcessFieldVO vo = null;
      HashSet alreadyAdded = new HashSet();
      int count = 0;
      for(int k=0;k<impVO.getTableNames().length;k++) {
        alreadyAdded.clear();
        tableName = impVO.getTableNames()[k];
        insSQL = "INSERT INTO " + tableName + "(CREATE_USER,CREATE_DATE,";
        count = 0;
        if (impVO.isSupportsCompanyCode()) {
          insSQL += "COMPANY_CODE_SYS01,";
          count++;
        }
        if (impVO.getHierarchyField()!=null &&
            getFieldName(impVO.getHierarchyField(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getHierarchyField(),tableName))) {
          insSQL += getFieldName(impVO.getHierarchyField(),tableName)+",";
          alreadyAdded.add(getFieldName(impVO.getHierarchyField(),tableName));
          count++;
        }
        if (impVO.getSubTypeField()!=null &&
            getFieldName(impVO.getSubTypeField(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getSubTypeField(),tableName))) {
          insSQL += getFieldName(impVO.getSubTypeField(),tableName) + ",";
          alreadyAdded.add(getFieldName(impVO.getSubTypeField(),tableName));
          count++;
        }
        if (impVO.getSubTypeField2()!=null &&
            getFieldName(impVO.getSubTypeField2(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getSubTypeField2(),tableName))) {
          insSQL += getFieldName(impVO.getSubTypeField2(),tableName) + ",";
          alreadyAdded.add(getFieldName(impVO.getSubTypeField2(),tableName));
          count++;
        }
        if (impVO.getProgressiveFieldName()!=null &&
            getFieldName(impVO.getProgressiveFieldName(),tableName)!=null &&
            !alreadyAdded.contains(getFieldName(impVO.getProgressiveFieldName(),tableName))) {
          insSQL += getFieldName(impVO.getProgressiveFieldName(),tableName) + ",";
          alreadyAdded.add(getFieldName(impVO.getProgressiveFieldName(),tableName));
          count++;
        }
        Iterator it = fieldsToAdd.keySet().iterator();
        while(it.hasNext()) {
           fieldName = it.next().toString();
           if (getFieldName(fieldName,tableName)!=null &&
               !alreadyAdded.contains(getFieldName(fieldName,tableName))) {
             insSQL += getFieldName(fieldName, tableName) + ",";
             alreadyAdded.add(getFieldName(fieldName,tableName));
             count++;
           }
        }
        for (int i = 0; i < fieldsVO.size(); i++) {
          vo = (ETLProcessFieldVO) fieldsVO.get(i);
          if (getFieldName(vo.getFieldNameSYS24(),tableName)!=null &&
              !alreadyAdded.contains(getFieldName(vo.getFieldNameSYS24(),tableName))) {
            insSQL += getFieldName(vo.getFieldNameSYS24(), tableName) + ",";
            alreadyAdded.add(getFieldName(vo.getFieldNameSYS24(),tableName));
            count++;
          }
        }
        it = impVO.getDefaultFields().keySet().iterator();
        while (it.hasNext()) {
          fieldName = it.next().toString();
          if (getFieldName(fieldName,tableName)!=null) {
            insSQL += getFieldName(fieldName, tableName) + ",";
            count++;
          }
        }
        insSQL = insSQL.substring(0, insSQL.length() - 1);
        insSQL += ") VALUES(?,?,";
        for(int i=0;i<count;i++)
          insSQL += "?,";
        insSQL = insSQL.substring(0, insSQL.length() - 1);
        insSQL += ")";
        insPstmt[k] = conn.prepareStatement(insSQL);

      } // end for on tables...


      // prepare SQL for update ops...
      String updSQL = null;
      Iterator it = null;
      for(int k=0;k<impVO.getTableNames().length;k++) {
        tableName = impVO.getTableNames()[k];
        updSQL = "UPDATE " + tableName + " SET LAST_UPDATE_USER=?,LAST_UPDATE_DATE=?,";
        alreadyAdded.clear();
        for (int i = 0; i < fieldsVO.size(); i++) {
          vo = (ETLProcessFieldVO) fieldsVO.get(i);
          if (getFieldName(vo.getFieldNameSYS24(),tableName)!=null &&
              !alreadyAdded.contains(getFieldName(vo.getFieldNameSYS24(), tableName))) {
            updSQL += getFieldName(vo.getFieldNameSYS24(), tableName) + "=?,";
            alreadyAdded.add(getFieldName(vo.getFieldNameSYS24(), tableName));
          }
        }
        if (impVO.getHierarchyField()!=null &&
            getFieldName(impVO.getHierarchyField(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getHierarchyField(),tableName))) {
          updSQL += getFieldName(impVO.getHierarchyField(),tableName)+"=?,";
          alreadyAdded.add(getFieldName(impVO.getHierarchyField(),tableName));
        }
        updSQL = updSQL.substring(0, updSQL.length() - 1);
        updSQL += " WHERE ";
        if (impVO.isSupportsCompanyCode()) {
          updSQL += "COMPANY_CODE_SYS01=? and ";
        }
//        if (getFieldName(impVO.getHierarchyField(),tableName) != null &&
//            !alreadyAdded.contains(getFieldName(impVO.getHierarchyField(),tableName))) {
//          updSQL += getFieldName(impVO.getHierarchyField(),tableName)+"=? and ";
//          alreadyAdded.add(getFieldName(impVO.getHierarchyField(),tableName));
//        }
        if (getFieldName(impVO.getSubTypeField(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getSubTypeField(),tableName))) {
          updSQL += getFieldName(impVO.getSubTypeField(),tableName) + "=? and ";
          alreadyAdded.add(getFieldName(impVO.getSubTypeField(),tableName));
        }
        if (getFieldName(impVO.getSubTypeField2(),tableName) != null &&
            !alreadyAdded.contains(getFieldName(impVO.getSubTypeField2(),tableName))) {
          updSQL += getFieldName(impVO.getSubTypeField2(),tableName) + "=? and ";
          alreadyAdded.add(getFieldName(impVO.getSubTypeField2(),tableName));
        }
        it = impVO.getPkFields().iterator();
        while (it.hasNext()) {
          fieldName = it.next().toString();
          if (getFieldName(fieldName,tableName)!=null)
            updSQL += getFieldName(fieldName,tableName)+"=? and ";
        }
        updSQL = updSQL.substring(0, updSQL.length() - 4);
        updPstmt[k] = conn.prepareStatement(updSQL);

      } // end for on tables...



      // prepare SQL for insert description ops...
      String insSYS10 = "INSERT INTO SYS10_COMPANY_TRANSLATIONS(PROGRESSIVE,LANGUAGE_CODE,DESCRIPTION,COMPANY_CODE_SYS01,CREATE_USER,CREATE_DATE) VALUES(?,?,?,?,?,?)";
      insSYS10Pstmt = conn.prepareStatement(insSYS10);


      // prepare SQL for update description ops...
      String updSYS10 = "UPDATE SYS10_COMPANY_TRANSLATIONS SET DESCRIPTION=?,LAST_UPDATE_USER=?,LAST_UPDATE_DATE=? WHERE COMPANY_CODE_SYS01=? and PROGRESSIVE=? and LANGUAGE_CODE=?";
      updSYS10Pstmt = conn.prepareStatement(updSYS10);


      // prepare SQL for select ops...
      String selSQL = null;
      for(int k=0;k<impVO.getTableNames().length;k++) {
        alreadyAdded.clear();
        tableName = impVO.getTableNames()[k];
        selSQL = "SELECT ";
        it = impVO.getProgressiveSys10Fields().keySet().iterator();
        while (it.hasNext()) {
          fieldName = it.next().toString();
          if (getFieldName(fieldName,tableName)!=null &&
              !alreadyAdded.contains(getFieldName(fieldName,tableName))) {
            selSQL += getFieldName(fieldName, tableName) + ",";
            alreadyAdded.add(getFieldName(fieldName,tableName));
          }
        }
        if (selSQL.length()>7) {
          selSQL = selSQL.substring(0,selSQL.length()-1);
        }
        else {
          selSQL += "*";
        }
        selSQL += " FROM "+tableName+" WHERE ";
        if (impVO.isSupportsCompanyCode()) {
          selSQL += "COMPANY_CODE_SYS01=? and ";
        }
//        if (getFieldName(impVO.getHierarchyField(),tableName) != null) {
//          selSQL += getFieldName(impVO.getHierarchyField(),tableName)+"=? and ";
//        }
        if (getFieldName(impVO.getSubTypeField(),tableName) != null) {
          selSQL += getFieldName(impVO.getSubTypeField(),tableName) + "=? and ";
        }
        if (getFieldName(impVO.getSubTypeField2(),tableName) != null) {
          selSQL += getFieldName(impVO.getSubTypeField2(),tableName) + "=? and ";
        }
        it = impVO.getPkFields().iterator();
        while (it.hasNext()) {
          fieldName = it.next().toString();
          if (getFieldName(fieldName,tableName)!=null)
            selSQL += "("+getFieldName(fieldName,tableName)+"=? or "+getFieldName(fieldName,tableName)+" is null) and ";
        }
        selSQL = selSQL.substring(0, selSQL.length() - 4);
        selPstmt[k] = conn.prepareStatement(selSQL);

      } // end for on tables...


      // indexing fields as <FieldEntry,Integer index>
      HashMap fields = new HashMap();
      int pos = 0;
      for(int i=0;i<fieldsVO.size();i++) {
        vo = (ETLProcessFieldVO)fieldsVO.get(i);
        fields.put(
          new FieldEntry(vo.getLanguageCodeSYS24(),vo.getFieldNameSYS24()),
          new Integer(pos++)
        );
      }
      LanguageVO langVO = null;
      if (processVO.getProgressiveHIE02()!=null) {
        for(int i=0;i<langsVO.size();i++) {
          langVO = (LanguageVO) langsVO.get(i);
          fields.put(
            new FieldEntry(vo.getLanguageCodeSYS24(),impVO.getHierarchyField()),
            new Integer(pos++)
          );
        }
      }

      // indexing fields as <field name,Class type>
      HashMap classes = new HashMap();
      for(int i=0;i<impVO.getFields().length;i++) {
        classes.put(
          impVO.getFields()[i],
          impVO.getFieldsType()[i]
        );
      }
      it = impVO.getProgressiveSys10Fields().keySet().iterator();
      while(it.hasNext()) {
        fieldName = it.next().toString();
        for(int i=0;i<langsVO.size();i++) {
          langVO = (LanguageVO) langsVO.get(i);
          classes.put(
            fieldName,
            String.class//BigDecimal.class
          );
        }
      }
      if (processVO.getProgressiveHIE02()!=null) {
        for(int i=0;i<langsVO.size();i++) {
          langVO = (LanguageVO) langsVO.get(i);
          classes.put(
            impVO.getHierarchyField(),
            String.class//BigDecimal.class
          );
        }
      }


      if (processVO.getFileFormatSYS23().equals(ApplicationConsts.FILE_FORMAT_TXT))
        proc = new TXTRowProcessor();
      else if (processVO.getFileFormatSYS23().equals(ApplicationConsts.FILE_FORMAT_CSV1))
        proc = new CSVRowProcessor(";");
      else if (processVO.getFileFormatSYS23().equals(ApplicationConsts.FILE_FORMAT_CSV2))
        proc = new CSVRowProcessor(",");
      else if (processVO.getFileFormatSYS23().equals(ApplicationConsts.FILE_FORMAT_XLS))
        proc = new XLSRowProcessor();

      InputStream in = null;
      if (processVO.getLocalFile() != null &&
          processVO.getLocalFile().length > 0)
        in = new ByteArrayInputStream(processVO.getLocalFile());
      else {
        File f = new File(processVO.getFilenameSYS23());
        if (!f.exists())
          throw new Exception("File non exists");
        in = new BufferedInputStream(new FileInputStream(f));
      }
      proc.openFile(in);

      Object[] row = null;
      pos = 1;
      String progFieldName = null;
      BigDecimal progressiveSYS10 = null;
      long rows = 0;
      long rowsInserted = 0;
      long rowsUpdated = 0;
      FieldEntry pk = null;
      String[] levelsDesc = null;
      BigDecimal progressiveHIE01 = null;
      int index = -1;
      Object value = null;
      BigDecimal progressive = null;
      Integer indexInt = null;
      long notYetCommited = 0;
      while((row=proc.getNextRow(fieldsVO,impVO,classes))!=null) {
        rows++;

        for(int k=0;k<impVO.getTableNames().length;k++) {
          tableName = impVO.getTableNames()[k];


          // check if record exists...
          pos = 1;
          if (impVO.isSupportsCompanyCode()) {
            selPstmt[k].setObject(pos++,processVO.getCompanyCodeSys01SYS23());
          }
          if (getFieldName(impVO.getSubTypeField(),tableName) != null) {
            selPstmt[k].setObject(pos++,processVO.getSubTypeValueSYS23());
          }
          if (getFieldName(impVO.getSubTypeField2(),tableName) != null) {
            selPstmt[k].setObject(pos++,processVO.getSubTypeValue2SYS23());
          }

//          for(int i=0;i<params[k].size();i++)
//            selPstmt[k].setObject(pos++,params[k].get(i));
          it = impVO.getPkFields().iterator();
          while (it.hasNext()) {
            fieldName = it.next().toString();
            if (getFieldName(fieldName,tableName)!=null)
              selPstmt[k].setObject(pos++,row[((Integer)fields.get(new FieldEntry(ApplicationConsts.JOLLY,fieldName))).intValue()]);
          }
          rset = selPstmt[k].executeQuery();

          if (rset.next()) {
            // record must be updated...
            if (impVO.getProgressiveSys10Fields().size()>0) {
              // record already exists: fetch progressives...
              it = impVO.getProgressiveSys10Fields().keySet().iterator();
              pos = 1;
              while(it.hasNext()) {
                progFieldName = it.next().toString();
                progressiveSYS10 = rset.getBigDecimal(pos++);

                // update record in SYS10...
                for(int i=0;i<langsVO.size();i++) {
                  langVO = (LanguageVO)langsVO.get(i);
                  pk = new FieldEntry(langVO.getLanguageCodeSYS09(),progFieldName);
                  indexInt = (Integer)fields.get(pk);
                  if (indexInt==null)
                    // in case of not mandatory progressiveSYS10 (e.g. additional description...)
                    // which has not been mapped in SYS24...
                    continue;
                  index = indexInt.intValue();
                  updSYS10Pstmt.setObject(1,row[index]);
                  updSYS10Pstmt.setString(2,username); pos++;
                  updSYS10Pstmt.setTimestamp(3,new java.sql.Timestamp(System.currentTimeMillis())); pos++;
                  updSYS10Pstmt.setString(4,processVO.getCompanyCodeSys01SYS23());
                  updSYS10Pstmt.setBigDecimal(5,progressiveSYS10);
                  updSYS10Pstmt.setString(6,langVO.getLanguageCodeSYS09());
                  updSYS10Pstmt.execute();
                  row[index] = progressiveSYS10;
                }
              }
            }

            rset.close();


            if (processVO.getProgressiveHIE02()!=null) {
              // retrieve hierarchy level...
              langVO = (LanguageVO)langsVO.get(0);
              pk = new FieldEntry(langVO.getLanguageCodeSYS09(),impVO.getHierarchyField());
              levelsDesc = new String[langsVO.size()];
              levelsDesc[0] = (String)row[((Integer)fields.get(pk)).intValue()];
              progressiveHIE01 = (BigDecimal)treeIndexes[0].get(levelsDesc[0]);
              if (progressiveHIE01==null) {
                // the levels do not exist yet: must be inserted...

                for(int i=0;i<langsVO.size();i++) {
                  langVO = (LanguageVO)langsVO.get(i);
                  pk = new FieldEntry(langVO.getLanguageCodeSYS09(),impVO.getHierarchyField());
                  levelsDesc[i] = (String)row[((Integer)fields.get(pk)).intValue()];
                }
                progressiveHIE01 = insertLevels(
                    conn,
                    langVO.getLanguageCodeSYS09(),
                    username,
                    langsVO,
                    levelsDesc,
                    processVO.getLevelsSepSYS23(),
                    treeIndexes,
                    processVO.getProgressiveHIE02(),
                    processVO.getCompanyCodeSys01SYS23()
                );
              }

              for(int i=0;i<langsVO.size();i++) {
                langVO = (LanguageVO)langsVO.get(i);
                pk = new FieldEntry(langVO.getLanguageCodeSYS09(),impVO.getHierarchyField());
                row[((Integer)fields.get(pk)).intValue()] = progressiveHIE01;
              }
              params[k].set(hierarchyLevelIndex,progressiveHIE01);
            }


            // update main record...
            pos = 1;
//            for(int i=0;i<row.length;i++)
//              updPstmt[k].setObject(pos++,row[i]);

            updPstmt[k].setString(pos,username); pos++;
            updPstmt[k].setTimestamp(pos,new java.sql.Timestamp(System.currentTimeMillis())); pos++;

            alreadyAdded.clear();
            for (int i = 0; i < fieldsVO.size(); i++) {
              vo = (ETLProcessFieldVO) fieldsVO.get(i);
              if (getFieldName(vo.getFieldNameSYS24(),tableName)!=null &&
                  !alreadyAdded.contains(getFieldName(vo.getFieldNameSYS24(), tableName))) {
                updPstmt[k].setObject(pos++,row[i]);
                alreadyAdded.add(getFieldName(vo.getFieldNameSYS24(), tableName));
              }
            }
            if (impVO.getHierarchyField()!=null &&
                getFieldName(impVO.getHierarchyField(),tableName) != null &&
                !alreadyAdded.contains(getFieldName(impVO.getHierarchyField(),tableName))) {
              updPstmt[k].setObject(pos++,row[((Integer)fields.get(new FieldEntry(ApplicationConsts.JOLLY,impVO.getHierarchyField()))).intValue()]);
              alreadyAdded.add(getFieldName(impVO.getHierarchyField(),tableName));
            }

            if (impVO.isSupportsCompanyCode()) {
              updPstmt[k].setObject(pos++,processVO.getCompanyCodeSys01SYS23());
            }
            if (getFieldName(impVO.getSubTypeField(),tableName) != null) {
              updPstmt[k].setObject(pos++,processVO.getSubTypeValueSYS23());
            }
            if (getFieldName(impVO.getSubTypeField2(),tableName) != null) {
              updPstmt[k].setObject(pos++,processVO.getSubTypeValue2SYS23());
            }

//            for(int i=0;i<params[k].size();i++)
//              updPstmt[k].setObject(pos++,params[k].get(i));

            it = impVO.getPkFields().iterator();
            while (it.hasNext()) {
              fieldName = it.next().toString();
              if (getFieldName(fieldName,tableName)!=null)
                updPstmt[k].setObject(pos++,row[((Integer)fields.get(new FieldEntry(ApplicationConsts.JOLLY,fieldName))).intValue()]);
            }
            updPstmt[k].execute();

            rowsUpdated++;
            notYetCommited++;
          }
          else {
            // record does not exist yet...
            rset.close();

            if (impVO.getProgressiveSys10Fields().size()>0) {
              // create progressives and insert records in SYS10...
              it = impVO.getProgressiveSys10Fields().keySet().iterator();
              pos = 1;

              while(it.hasNext()) {
                progFieldName = it.next().toString();

                progressiveSYS10 = CompanyProgressiveUtils.getInternalProgressive(
                    processVO.getCompanyCodeSys01SYS23(), // ??? defCompanyCodeSys01SYS03,
                    "SYS10_COMPANY_TRANSLATIONS",
                    "PROGRESSIVE",
                    conn
                );

                // insert record in SYS10...
                for(int i=0;i<langsVO.size();i++) {
                  langVO = (LanguageVO)langsVO.get(i);
                  pk = new FieldEntry(langVO.getLanguageCodeSYS09(),progFieldName);
                  indexInt = (Integer)fields.get(pk);
                  if (indexInt==null)
                    // in case of not mandatory progressiveSYS10 (e.g. additional description...)
                    // which has not been mapped in SYS24...
                    continue;
                  index = indexInt.intValue();
                  insSYS10Pstmt.setBigDecimal(1,progressiveSYS10);
                  insSYS10Pstmt.setString(2,langVO.getLanguageCodeSYS09());
                  insSYS10Pstmt.setObject(3,row[index]);
                  insSYS10Pstmt.setString(4,processVO.getCompanyCodeSys01SYS23());
                  insSYS10Pstmt.setString(5,username);
                  insSYS10Pstmt.setTimestamp(6,new java.sql.Timestamp(System.currentTimeMillis()));
                  insSYS10Pstmt.execute();
                  row[index] = progressiveSYS10;
                }
              }
            }


            if (processVO.getProgressiveHIE02()!=null) {
              // retrieve hierarchy level...
              langVO = (LanguageVO)langsVO.get(0);
              pk = new FieldEntry(langVO.getLanguageCodeSYS09(),impVO.getHierarchyField());
              levelsDesc = new String[langsVO.size()];
              levelsDesc[0] = (String)row[((Integer)fields.get(pk)).intValue()];
              progressiveHIE01 = (BigDecimal)treeIndexes[0].get(levelsDesc[0]);
              if (progressiveHIE01==null) {
                // the levels do not exist yet: must be inserted...

                for(int i=0;i<langsVO.size();i++) {
                  langVO = (LanguageVO)langsVO.get(i);
                  pk = new FieldEntry(langVO.getLanguageCodeSYS09(),impVO.getHierarchyField());
                  levelsDesc[i] = (String)row[((Integer)fields.get(pk)).intValue()];
                }
                progressiveHIE01 = insertLevels(
                    conn,
                    langVO.getLanguageCodeSYS09(),
                    username,
                    langsVO,
                    levelsDesc,
                    processVO.getLevelsSepSYS23(),
                    treeIndexes,
                    processVO.getProgressiveHIE02(),
                    processVO.getCompanyCodeSys01SYS23()
                );
              }
              params[k].set(hierarchyLevelIndex,progressiveHIE01);
            }


            // insert main record...
            pos = 1;
            alreadyAdded.clear();

            if (impVO.getHierarchyField()!=null &&
                getFieldName(impVO.getHierarchyField(),tableName) != null &&
                !alreadyAdded.contains(getFieldName(impVO.getHierarchyField(),tableName))) {
              alreadyAdded.add(getFieldName(impVO.getHierarchyField(),tableName));
            }
            if (impVO.getSubTypeField()!=null &&
                getFieldName(impVO.getSubTypeField(),tableName) != null &&
                !alreadyAdded.contains(getFieldName(impVO.getSubTypeField(),tableName))) {
              alreadyAdded.add(getFieldName(impVO.getSubTypeField(),tableName));
            }
            if (impVO.getSubTypeField2()!=null &&
                getFieldName(impVO.getSubTypeField2(),tableName) != null &&
                !alreadyAdded.contains(getFieldName(impVO.getSubTypeField2(),tableName))) {
              alreadyAdded.add(getFieldName(impVO.getSubTypeField2(),tableName));
            }
            if (impVO.getProgressiveFieldName()!=null &&
                getFieldName(impVO.getProgressiveFieldName(),tableName)!=null &&
                !alreadyAdded.contains(getFieldName(impVO.getProgressiveFieldName(),tableName))) {
              alreadyAdded.add(getFieldName(impVO.getProgressiveFieldName(),tableName));
            }

            insPstmt[k].setString(pos,username); pos++;
            insPstmt[k].setTimestamp(pos,new java.sql.Timestamp(System.currentTimeMillis())); pos++;
            for(int i=0;i<params[k].size();i++)
              insPstmt[k].setObject(pos++,params[k].get(i));

            // check for progressive to calculate...
            if (impVO.getProgressiveFieldName()!=null &&
                getFieldName(impVO.getProgressiveFieldName(),tableName)!=null) {
              progressive = CompanyProgressiveUtils.getInternalProgressive(
               processVO.getCompanyCodeSys01SYS23(), // ???defCompanyCodeSys01SYS03,
                 tableName,
                 getFieldName(impVO.getProgressiveFieldName(),tableName),
                 conn
              );
              insPstmt[k].setBigDecimal(pos++,progressive);
            }

            it = fieldsToAdd.keySet().iterator();
            while(it.hasNext()) {
               fieldName = it.next().toString();
               if (getFieldName(fieldName,tableName)!=null &&
                   !alreadyAdded.contains(getFieldName(fieldName,tableName))) {
                 insPstmt[k].setObject(pos++,fieldsToAdd.get(fieldName));
                 alreadyAdded.add(getFieldName(fieldName,tableName));
               }
            }

            for (int i = 0; i < fieldsVO.size(); i++) {
              vo = (ETLProcessFieldVO) fieldsVO.get(i);
              if (getFieldName(vo.getFieldNameSYS24(),tableName)!=null &&
                  !alreadyAdded.contains(getFieldName(vo.getFieldNameSYS24(), tableName))) {
                insPstmt[k].setObject(pos++,row[i]);
                alreadyAdded.add(getFieldName(vo.getFieldNameSYS24(), tableName));
              }
            }

//            for(int i=0;i<row.length;i++)
//              insPstmt[k].setObject(pos++,row[i]);
View Full Code Here

  public Object[] getNextRow(List fields,ImportDescriptorVO fileDescrVO,HashMap indexes) throws Throwable {
    String line = br.readLine();
    if (line==null)
      return null;

    ETLProcessFieldVO vo = null;
    Object[] values = new Object[fields.size()];
    for(int i=0;i<fields.size();i++) {
      vo = (ETLProcessFieldVO)fields.get(i);
      values[i] = convertObj(
        true,
        vo.getDateFormatSYS24(),
        line.substring(vo.getStartPosSYS24().intValue()-1,vo.getEndPosSYS24().intValue()),
        (Class)indexes.get(vo.getFieldNameSYS24())
      );
    }
    return values;
  }
View Full Code Here

TOP

Related Classes of org.jallinone.system.importdata.java.ETLProcessFieldVO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.