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

📄 impaction.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.core.expimp.imp.action;

import java.io.File;
import java.util.Collection;
import java.util.Iterator;

import javax.sql.DataSource;

import cn.myapps.base.action.BaseAction;
import cn.myapps.base.dao.PersistenceUtils;
import cn.myapps.constans.Environment;
import cn.myapps.core.deploy.module.ejb.ModuleProcess;
import cn.myapps.core.deploy.module.ejb.ModuleVO;
import cn.myapps.core.expimp.imp.ejb.ImpObject;
import cn.myapps.core.expimp.imp.util.ImpOperator;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.ZipUtil;
import cn.myapps.util.file.FileOperate;
import cn.myapps.util.property.DefaultProperty;

import com.opensymphony.webwork.ServletActionContext;

public class ImpAction extends BaseAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8303636509753933546L;

	private File impFile;

	private String impFilePath;

	private String impFileFileName;

	private String impFileContentType;

	private ImpObject _impobj;

	public ImpAction() throws ClassNotFoundException {
		super(ProcessFactory.createProcess(ModuleProcess.class), new ModuleVO());
		_impobj = new ImpObject();
	}

	public String doStart() throws Exception {
		return SUCCESS;
	}

	public String doNext() throws Exception {
		return SUCCESS;
	}

	public String doUpload() throws Exception {
		ImpOperator io = new ImpOperator(getDataSource());

		if (impFileFileName == null) {
			addFieldError("", "Please choose upload file");
			return INPUT;
		}

		String extension = impFileFileName.substring(
				impFileFileName.lastIndexOf(".") + 1).toLowerCase();

		System.out.println("contentType->" + impFileContentType);
		if (extension.equals("zip")) {
			String zipFileDir = impFileFileName.substring(0, impFileFileName
					.lastIndexOf("."));

			// 解压文件目录
			String dirPath = getImportUploadDir() + "/" + zipFileDir;

			ZipUtil.decompress(impFile, dirPath); // 解压文件到服务器

			// 根据扩展名获取相应文件
			File[] files = FileOperate.getAllFilesInFolderByExtension(dirPath,
					"xml");

			if (files.length > 0) {
				Collection dynaBeans = io.parse(files[0]);
				_impobj.setDataList(dynaBeans);

				this.setImpFilePath(dirPath);

				// 把上传的zip文件保存到服务器uploads/import目录
				String zipFilePath = getImportUploadDir() + "/"
						+ impFileFileName;
				FileOperate.writeFile(zipFilePath, impFile);
			} else {
				addFieldError("",
						"The zip file does not contain a xml data file");
				return INPUT;
			}
			if (_impobj.isImpAll()) {
				return NONE;
			} else {
				return SUCCESS;
			}

		} else {
			addFieldError("", "Invalid file type:\"" + extension + "\","
					+ " Allowed file type is zip");

			return INPUT;
		}
	}

	public String doImp() {
		try {
			ImpOperator io = new ImpOperator(getDataSource());

			File[] dataFiles = FileOperate.getAllFilesInFolderByExtension(
					impFilePath, "xml");

			Collection colls = io.parse(dataFiles[0]);

			Collection impDatas = _impobj.getAllImportDatas(colls);
			Collection impImageUrls = _impobj.getAllImportImageUrls(colls,
					getEnvironment());

			File[] files = FileOperate.getAllFilesInFolder(impFilePath);

			io.writeFilesToDir(files, impImageUrls, getEnvironment());
			Collection messages = io.writeDataToDB(impDatas);
			for (Iterator iter = messages.iterator(); iter.hasNext();) {
				String message = (String) iter.next();
				addActionMessage(message);
			}

			FileOperate.deleteAllFilesInFolder(impFilePath);
			new File(impFilePath).delete();

		} catch (Exception e) {
			this.addFieldError("", e.getMessage());
			return INPUT;
		}

		return SUCCESS;
	}

	public File getImpFile() {
		return impFile;
	}

	public void setImpFile(File impFile) {
		this.impFile = impFile;
	}

	public String getImpFilePath() {
		return impFilePath;
	}

	public void setImpFilePath(String impFilePath) {
		this.impFilePath = impFilePath;
	}

	public ImpObject get_impobj() {
		return _impobj;
	}

	public void set_impobj(ImpObject _impobj) {
		this._impobj = _impobj;
	}

	public DataSource getDataSource() throws Exception {
		DataSource ds = PersistenceUtils.getDataSource();
		return ds;
	}

	/**
	 * 获取uploads/import目录路径
	 * 
	 * @param file
	 * @return
	 * @throws Exception
	 */
	private String getImportUploadDir() throws Exception {
		Environment evt = (Environment) getContext().getApplication().get(
				Environment.class.getName());

		String path = DefaultProperty.getProperty("IMPORT_PATH");
		String dirPath = evt.getWebcontextRealPath(path);

		File dir = new File(dirPath);
		if (!dir.exists()) {
			dir.mkdirs();
		}

		return dirPath;
	}

	public String getImpFileFileName() {
		return impFileFileName;
	}

	public void setImpFileFileName(String impFileFileName) {
		this.impFileFileName = impFileFileName;
	}

	public String getImpFileContentType() {
		return impFileContentType;
	}

	public void setImpFileContentType(String impFileContentType) {
		this.impFileContentType = impFileContentType;
	}
}

⌨️ 快捷键说明

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