Package org.jeecgframework.web.demo.controller.test

Source Code of org.jeecgframework.web.demo.controller.test.JeecgDemoTransDataForXml

package org.jeecgframework.web.demo.controller.test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jeecgframework.web.cgform.service.migrate.MigrateForm;
import org.jeecgframework.web.demo.entity.test.JeecgDemo;

import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.dao.jdbc.JdbcDao;
import org.jeecgframework.core.common.model.common.DBTable;
import org.jeecgframework.core.common.model.common.UploadFile;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.core.util.LogUtil;
import org.jeecgframework.core.util.ResourceUtil;
import org.jeecgframework.core.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;

import com.thoughtworks.xstream.XStream;

@Controller
@RequestMapping("/transdata")
public class JeecgDemoTransDataForXml extends BaseController {

  private static final Logger logger = Logger.getLogger(JeecgDemoTransDataForXml.class);

  @Autowired
  @Qualifier("jdbcTemplate")
  private JdbcTemplate jdbcTemplate;
  @Autowired
  private JdbcDao jdbcDao ;
  @Autowired
  private CommonService commonService;

  private String message;

  public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
    this.message = message;
  }
  /**
   * 导出数据为xml
   * @param request
   * @param response
   */
  @RequestMapping(params = "doMigrateOut")
  public void doMigrateOut(HttpServletRequest request,HttpServletResponse response){
    String savePath = ResourceUtil.getSystempPath();
    // 创建文件
    savePath += "/test_export_migrate.xml";
    File file = new File(savePath);
    try {
      if (!file.exists()) {
        try {
          file.createNewFile();
        } catch (IOException e) {
          logger.info("创建文件名失败!!");
          e.printStackTrace();
        }
      }
      String ids = request.getParameter("ids");
      XStream xStream = new XStream();
      DBTable dbTable = new DBTable();
      dbTable.setTableName("jeecg_demo");
      dbTable.setClass1(JeecgDemo.class);
      String sql = "select * from jeecg_demo";
      if(StringUtil.isNotEmpty(ids) && ids.split(",").length>0){
        sql += " where id in ('"+ids.replaceAll(",", "','")+"')";
      }
      List<JeecgDemo> list = jdbcDao.find(sql, JeecgDemo.class, null);
      //jdbcDao.executeSql("delete from jeecg_demo", null);
      dbTable.setTableData(list);
      xStream.processAnnotations(DBTable.class);
      FileOutputStream outputStream = new FileOutputStream(savePath);
      Writer writer = new OutputStreamWriter(outputStream, "UTF-8");
      writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");
      xStream.toXML(dbTable, writer);
      logger.debug("create doMigrateOut file: " + savePath);
      String ls_filename = MigrateForm.zip(null, "", savePath); // 压缩文件
      // 文件下载
      file = new File(ls_filename);
      String filename = file.getName();
      InputStream fis = new BufferedInputStream(new FileInputStream(ls_filename));
      // 输出生成的zip文件
      // 清空response
      response.reset();
      // 设置response的Header
      response.setContentType("text/html;charset=utf-8");
      request.setCharacterEncoding("UTF-8");
      response.addHeader("Content-Length", "" + file.length());
      OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
      response.setContentType("application/octet-stream");
      response.setHeader("Content-disposition", "attachment;filename="
          + new String(filename.getBytes("utf-8"), "ISO8859-1"));
      int bytesRead = 0;
      byte[] buffer = new byte[8192];
      while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
        toClient.write(buffer, 0, bytesRead);
      }
      toClient.write(buffer);
      toClient.flush();
      toClient.close();
      fis.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 
  /**
   * 导入文件跳转
   * @return
   */
  @RequestMapping(params = "toMigrate")
  public ModelAndView toCgformMigrate(HttpServletRequest req) {
    return new ModelAndView("jeecg/demo/jeecgDemo/cgformMigrateInclude");
  }
 
  /**
   * 导出数据为xml
   * @param request
   * @param response
   */
  @ResponseBody
  @RequestMapping(params = "doMigrateIn")
  public AjaxJson doMigrateIn(HttpServletRequest request,HttpServletResponse response){
    AjaxJson j = new AjaxJson();
    String ls_file = "";
    UploadFile uploadFile = new UploadFile(request, ls_file);
    uploadFile.setCusPath("");
    uploadFile.setSwfpath("");
    String uploadbasepath = uploadFile.getBasePath();// 文件上传根目录
    if (uploadbasepath == null) {
      uploadbasepath = ResourceUtil.getConfigByName("uploadpath");
    }
    String path = uploadbasepath + "\\";// 文件保存在硬盘的相对路径
    String realPath = uploadFile.getMultipartRequest().getSession()
        .getServletContext().getRealPath("\\")
        + path;// 文件的硬盘真实路径
    message = null;
    try {
      File file = new File(realPath);
      if (!file.exists()) {
        file.mkdir();// 若目录不存在,创建根目录
      }
      uploadFile.getMultipartRequest().setCharacterEncoding("UTF-8");
      MultipartHttpServletRequest multipartRequest = uploadFile
          .getMultipartRequest();
      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
      String fileName = "";
      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
        MultipartFile mf = entity.getValue();// 获取上传文件对象
        fileName = mf.getOriginalFilename();// 获取文件名
        String savePath = realPath + fileName;
        File savefile = new File(savePath);
        String ls_tmp = savefile.getName();
        FileCopyUtils.copy(mf.getBytes(), savefile);
        MigrateForm.unzip(savePath, "");
        String sqlFileDir = realPath + ls_tmp.substring(0, ls_tmp.lastIndexOf("."));
        File sqlDirFile = new File(sqlFileDir);
        String sqlfilename = sqlDirFile.getPath() + "/";
        if(sqlDirFile.isDirectory()){
          sqlfilename += sqlDirFile.list()[0];
        }
        XStream xStream = new XStream();
        xStream.processAnnotations(DBTable.class);
        DBTable dbTable = (DBTable) xStream.fromXML(new File(sqlfilename));
        if(dbTable.getClass1() != null ){
          //List list = dbTable.getTableData();
          commonService.batchSave(dbTable.getTableData());
          /*org.jeecgframework.core.util.LogUtil.info(list.size());
          for (Object object : list) {
            commonService.save(object);
          }*/
        }
      }
    } catch (Exception e1) {
      LogUtil.error(e1.toString());
      message = e1.toString();
    }
    if (StringUtil.isNotEmpty(message))
      j.setMsg("SQL文件导入失败," + message);
    else
      j.setMsg("SQL文件导入成功");

    return j;
  }
}
TOP

Related Classes of org.jeecgframework.web.demo.controller.test.JeecgDemoTransDataForXml

TOP
Copyright © 2018 www.massapi.com. 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.