⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileupload.jsp

📁 国外的一套开源CRM
💻 JSP
📖 第 1 页 / 共 2 页
字号:
					{
						String fieldName = (String) iter.next();
%>						<tr><td><%=fieldName%></td></tr>
<%
					}
%>
				</table>
<%				}
%>				</td></tr>
			</table>
<% 
		} else if(action.equals("import")) {
      
			screen = request.getParameter("screen");
			screenSection = request.getParameter("screenSection");
			String importTable = UtilFormatOut.checkNull(request.getParameter("importTable"));
			String importFile =  UtilFormatOut.checkNull(request.getParameter("importFile"));
	        int numImportFields = Integer.valueOf( request.getParameter("numFields") ).intValue();
 				
			if ( screen.equals("LEAD") )
				entityName = "Lead";
			else if ( screen.equals("ACCOUNT") )
				entityName = "Account";
			else if ( screen.equals("CONTACT") )
				entityName = "Contact";
			else
			{
				out.write("Unable to import" + screen + " data at this time" );
				throw new Exception("Import not implemented");
			}


	        GenericEventProcessor eventP = new GenericEventProcessor();
	        if ( screen.equals("LEAD") )
	        	eventP = leadEventProcessor;
	        else if ( screen.equals("ACCOUNT") )
	        	eventP = accountEventProcessor;
	        else if ( screen.equals("CONTACT") )
	        	eventP = contactEventProcessor;
	
	 		UIWebScreenSection uiWebScreenSection = importEventProcessor.getUiWebScreenSection(userInfo, screen, screenSection, delegator, uiCache); 				
	        
	        boolean addToList = false;
	        String uiListId = UtilFormatOut.checkNull(request.getParameter("uiListId"));
	        if ( uiListId.length() < 1 )
	        {
	        	String uiListName = UtilFormatOut.checkNull(request.getParameter("uiListName"));
	        	if ( uiListName.length() > 0 )
	        	{
	        		GenericValue listGV = new GenericValue(delegator.getModelEntity("UiList"));
	        		listGV.setDelegator(delegator);
	        		uiListId = GenericReplicator.getNextSeqId("UiList", delegator);
	        		listGV.set("listId", uiListId);
	        		listGV.set("listName", uiListName);
	        		listGV.set("listType", entityName);
	        		listGV.set("sectionId", uiWebScreenSection.getSectionId());
	        		listGV.set("partyId", userInfo.getAccountId());
	        		
	        		listGV.create();
	        		addToList = true;        		
	        	}
	        }
	        else
	        	addToList = true;
	        	
	        boolean addIdentifier = false;
	        String identifierId = UtilFormatOut.checkNull(request.getParameter("identifierId"));
	        if ( identifierId.length() < 1 )
	        {
	        	String identifierName = UtilFormatOut.checkNull(request.getParameter("identifierName"));
	        	if ( identifierName.length() > 0 )
	        	{
	        		GenericValue codeGV = new GenericValue(delegator.getModelEntity("Code"));
	        		codeGV.setDelegator(delegator);
	        		identifierId = identifierName;
	        		codeGV.set("codeTypeId", "IDENTIFIER_TYPE");
	        		codeGV.set("codeId", identifierId);
	        		codeGV.set("codeValue", identifierName);
	        		codeGV.set("isVisible", "Y");
	        		codeGV.set("isActive", "Y");
	        		
	        		codeGV.create();
	        		addIdentifier = true;        		
	        	}
	        }
	        else
	        	addIdentifier = true;
	        
		List fields = uiWebScreenSection.getDisplayFields(uiCache);
	  
	        Vector importFields = new Vector();
	        Vector fldMapping = new Vector();
	        int FIXED_FIELD = -100;

			HashMap fixedValues = new HashMap();
      
			Iterator fieldIter = fields.iterator();
			while (fieldIter.hasNext())
			{
				UIFieldInfo fieldInfo = (UIFieldInfo)fieldIter.next();
				String fieldName = UIWebUtility.getHtmlName(screenSection, fieldInfo, 0);
				
				String fldLoc = request.getParameter(fieldName);
				if ( ( fldLoc != null ) && (!fldLoc.equals("-1")))
				{
					try {
						Integer loc = Integer.valueOf(fldLoc);
			        	importFields.add(fieldName);
						fldMapping.add(loc);
					}
					catch (NumberFormatException nfe)
					{
						//skip fld
						Debug.logError("error converting number " + fldLoc, "csvImport");
					}
				}
				else
				{
					String fixedValue = request.getParameter(fieldName + "_Fixed");
					if ( (fixedValue != null) && ( fixedValue.length() > 0) )
					{
						fixedValues.put(fieldName, fixedValue);
						importFields.add(fieldName);
						fldMapping.add(new Integer(FIXED_FIELD));
					}
				}
			}

			DataFile read =  DataFile.createReader("8859_1");
	
			read.setDataFormat(new CSVFormat());
	
			// first line is column header
			read.containsHeader(false);
	
			read.open(new File(importFile));
			DataRow header = read.next();
			if ( header == null )
			{
				out.write("<BR>No data in file");
				return;
        }

			int i=0;
			long start = System.currentTimeMillis();
			int numFields = importFields.size();
				
			// get the primary Key field for this entity.  Note that this depends on the primary key being a single field
	       Iterator pkIter = delegator.getModelEntity(entityName).getPksIterator();
	       ModelField curField = (ModelField) pkIter.next();
	       String pkAttribName = curField.getName();
	       			
			for (DataRow row = read.next(); row != null; row = read.next()) 
			{
	
				i++;
				Vector dataValues = new Vector();
				
				for ( int j=0; j < numFields; j++ )
				{
					String fieldName = (String) importFields.get(j);
					Integer fldLoc = (Integer) fldMapping.get(j);
      
					int loc = fldLoc.intValue();
					
					if ( loc == FIXED_FIELD )
						dataValues.add( fixedValues.get(fieldName) ); 
					else
					dataValues.add( row.getString(loc) );
				}

   	    DataMatrix dataMatrix = new DataMatrix(delegator, uiWebScreenSection.getEntityParamVector());
	     	    int status = importEventProcessor.processInsert( userInfo, uiWebScreenSection, request, response, delegator, eventP, dataMatrix, dataValues, importFields, uiCache);
	     	    if ( status == GenericEventProcessor.STATUS_CONTINUE )
	     	    {
	     	    	String primaryId = "";
	     	    	if ( addToList || addIdentifier )
	     	    	{
	     	    		GenericValue primaryGV = dataMatrix.getCurrentBuffer().getGenericValue(0,entityName, true);
	     	    		primaryId = primaryGV.getString(pkAttribName);

	     	    	}
	     	    	if ( addToList )
	     	    	{
	     	    		GenericValue listItemGV = new GenericValue(delegator.getModelEntity("UiListItem"));
	     	    		listItemGV.setDelegator(delegator);
	     	    		listItemGV.set("listItemId", GenericReplicator.getNextSeqId("UiListItem", delegator));
	     	    		listItemGV.set("listId", uiListId);
	     	    		listItemGV.set("entityName", entityName);	     	    		
	     	    		listItemGV.set("entityId", primaryId);
	     	    		listItemGV.set("status", "new");
	     	    		listItemGV.create();
	     	    	}
	     	    	if ( addIdentifier )
	     	    	{
	     	    		GenericValue partyIdGV = new GenericValue(delegator.getModelEntity("PartyIdentifier"));
	     	    		partyIdGV.setDelegator(delegator);
	     	    		partyIdGV.set("partyId", primaryId);
	     	    		partyIdGV.set("identifierId", identifierId);
	     	    		partyIdGV.create();
	     	    	}
	     	    	
	     	    	
	     	    }

      }
	
			long end = System.currentTimeMillis();
			float time = (end - start)/1000;
			float per_record = time/i;
	
			read.close();
			
			out.write("<BR><h3>Imported " + i + " records in " + time + " seconds (" + per_record + "/per record");
	
   } else {
    out.write("csv Null error");
   }

%>
</table>

  <%
    } catch (Exception e) { e.printStackTrace();
    }
  %>

<%@ include file="/includes/footer.jsp" %>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -