QuotaConvertAction.java 3.43 KB
package com.cjs.cms.action.quota;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.cjs.cms.biz.quota.QuotaConvertBiz;
import com.cjs.cms.biz.report.ReportBiz;
import com.cjs.cms.dao.quota.QuotaConvertDao;
import com.cjs.cms.model.user.UserInfo;
import com.cjs.cms.util.lang.JsonUtil;
import com.cjs.cms.util.lang.PageUtils;
import com.cjs.cms.util.web.ActionUtil;
/**
 * 额度转换
 * @author tongxiaochuan
 *
 */
@Controller
@RequestMapping("/quota/convert")
public class QuotaConvertAction {

    @Autowired
    private ReportBiz reportBiz;
    @Autowired
    private QuotaConvertBiz quotaConvertBiz;
    
    /**
     * 按条件查询
     * @param params
     * @return
     */
    @RequestMapping("list")
    public @ResponseBody String list(@RequestParam Map<String, Object> params){
        reportBiz.formatDate(params);
        PageUtils.processPage(params);
        return JsonUtil.toPageJson(quotaConvertBiz.search(params), quotaConvertBiz.searchTotal(params));
    }
    
    /**
     * 导出验证
     * @param params
     * @param model
     * @param redirectAttributes
     * @return
     */
    @RequestMapping("/export")
    public String export(@RequestParam Map<String, Object> params, Model model, RedirectAttributes redirectAttributes){
        if(!params.get("exportStatus").toString().equals("0")){
            model.addAttribute("resultMsg", "只有状态为未导出的信息才可以导出");
            return "quota/quotaError.jsp";
        }
        redirectAttributes.addFlashAttribute("params", params);
        return "redirect:/quota/convert/exportFile";
    }
    
    /**
     * 导出
     * @param params
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping("/exportFile")
    public ResponseEntity<byte[]> exportFile(@ModelAttribute("params") Map<String, Object> params, HttpServletRequest request)
            throws Exception {
        UserInfo userInfo = ActionUtil.getUser();
        params.put("updateBy", userInfo.getTruename());
        reportBiz.formatDate(params);
        params.put("rows", 999999);
        PageUtils.processPage(params);
        File targetFile = quotaConvertBiz.export(params);
        HttpHeaders head = new HttpHeaders();
        head.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        // 下载的文件名
        head.setContentDispositionFormData("attachment",
                new String(targetFile.getName().getBytes("UTF-8"), "ISO8859-1"));
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(targetFile), head, HttpStatus.CREATED);
    }
    
    /**确认确权*/
    @RequestMapping("ensure")
    public @ResponseBody String ensure(){
        return quotaConvertBiz.ensure();
    }
    
}