package com.norteksoft.acs.web.sale; import java.io.File; import java.net.URLEncoder; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.base.web.struts2.Struts2Utils; import com.norteksoft.acs.entity.authorization.BusinessSystem; import com.norteksoft.acs.entity.organization.Company; import com.norteksoft.mms.base.data.FileConfigModel; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.organization.CompanyManager; import com.norteksoft.acs.service.sale.BasicDataManager; import com.norteksoft.acs.service.sale.ImportDataManager; import com.norteksoft.product.util.PropUtils; @SuppressWarnings("unchecked") @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/sale/basic-data.action", type = "redirect"), @Result(name = "showImport", location = "/sale/basic-data!showImportData.action", type = "redirect"), @Result(name = "showInit", location = "/sale/basic-data!showInitData.action?result=${result}", type = "redirect")}) public class BasicDataAction extends CRUDActionSupport { private Log log = LogFactory.getLog(BasicDataAction.class); private static final long serialVersionUID = 1L; private ImportDataManager importDataManager; private File file; private List<BusinessSystem> systems; private BusinessSystemManager businessSystemManager; private String systemIds;//系统id的集合,以逗号隔开 private String dataCodes;//数据类型 private String fileName;//文件名称 private String imatrixIp;//应用平台部署ip地址 private String imatrixPort;//应用平台部署的端口号 private String imatrixName;//应用名称,默认为imatrix private List<Company> companys;//公司列表 private boolean showFlag=false;//是否显示公司列表,当只有一个公司时不显示 private Long companyId;//公司id private BasicDataManager basicDataManager; private CompanyManager companyManager; private String result; private List<FileConfigModel> basicDataTypes; private static final String SUCCESS_MESSAGE_LEFT = "<font class=\"onSuccess\"><nobr>"; private static final String MESSAGE_RIGHT = "</nobr></font>"; private static final String ERROR_MESSAGE_LEFT = "<font class=\"onError\"><nobr>"; protected void addErrorMessage(String message){ this.addActionMessage(ERROR_MESSAGE_LEFT+message+MESSAGE_RIGHT); } protected void addSuccessMessage(String message){ this.addActionMessage(SUCCESS_MESSAGE_LEFT+message+MESSAGE_RIGHT); } @Override public String save() throws Exception { // importDataManager.saveFileData(file, tableName); // addActionMessage(tableName + "导入完成"); return RELOAD; } public String exportData() throws Exception{ HttpServletResponse response = Struts2Utils.getResponse(); response.reset(); response.setCharacterEncoding("utf-8"); response.setContentType("application/x-download"); response.addHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("basic-data.zip","utf-8")); basicDataManager.exportBasicData(response.getOutputStream(), systemIds, dataCodes,companyId); return null; } public String showImportData() throws Exception{ return "show-import"; } public String importData(){ if(fileName==null || !fileName.endsWith(".zip")){ this.renderText("请选择zip文件格式"); return null; } boolean success = true; try { basicDataManager.importBasicData(file,imatrixIp,imatrixPort,imatrixName); } catch (Exception e) { log.debug(PropUtils.getExceptionInfo(e)); success = false; } if(success){ this.renderText("导入成功"); }else{ this.renderText("导入失败,请检查zip文件格式"); } return null; } public String showInitData() throws Exception{ companys=companyManager.getCompanys(); if(companys.size()>1){ showFlag=true; } if(companys.size()==1){ companyId=companys.get(0).getId(); } return "init"; } public String initData() throws Exception{ if(fileName==null || !fileName.endsWith(".zip")){ result="noZip";//"请选择zip文件格式" return "showInit"; } boolean success = true; try { basicDataManager.initData(file,companyId); } catch (Exception e) { success = false; } if(success){ result="success";//初始化成功 }else{ result="zipError";//导入失败,请检查zip文件格式 } return "showInit"; } @Required public void setImportDataManager(ImportDataManager importDataManager) { this.importDataManager = importDataManager; } public File getFile() { return file; } public void setFile(File file) { this.file = file; } @Override public String delete() throws Exception { return null; } @Override public String list() throws Exception { companys=companyManager.getCompanys(); if(companys.size()>1){ showFlag=true; } if(companys.size()==1){ companyId=companys.get(0).getId(); } systems=businessSystemManager.getAllSystems(); basicDataTypes=basicDataManager.getBasicDataTypes(); return SUCCESS; } @Override protected void prepareModel() throws Exception { } public Object getModel() { return null; } public List<BusinessSystem> getSystems() { return systems; } @Autowired public void setBusinessSystemManager( BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } @Autowired public void setBasicDataManager(BasicDataManager basicDataManager) { this.basicDataManager = basicDataManager; } @Autowired public void setCompanyManager(CompanyManager companyManager) { this.companyManager = companyManager; } public void setSystemIds(String systemIds) { this.systemIds = systemIds; } public void setDataCodes(String dataCodes) { this.dataCodes = dataCodes; } public void setFileFileName(String fileName) { this.fileName = fileName; } public void setImatrixIp(String imatrixIp) { this.imatrixIp = imatrixIp; } public void setImatrixPort(String imatrixPort) { this.imatrixPort = imatrixPort; } public List<Company> getCompanys() { return companys; } public boolean isShowFlag() { return showFlag; } public void setCompanyId(Long companyId) { this.companyId = companyId; } public Long getCompanyId() { return companyId; } public void setImatrixName(String imatrixName) { this.imatrixName = imatrixName; } public List<FileConfigModel> getBasicDataTypes() { return basicDataTypes; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } }