CitDataPreviewController.java 5.72 KB
package pwc.taxtech.atms.controller;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import pwc.taxtech.atms.dto.CitJournalAdjustDto;
import pwc.taxtech.atms.dpo.CitTrialBalanceDto;
import pwc.taxtech.atms.dto.vatdto.*;
import pwc.taxtech.atms.dto.vatdto.dd.TrialBalanceDto;
import pwc.taxtech.atms.dto.vatdto.dd.*;
import pwc.taxtech.atms.service.impl.CitDataPreviewServiceImpl;
import pwc.taxtech.atms.service.impl.DataPreviewSerivceImpl;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;

import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
import static javax.servlet.http.HttpServletResponse.SC_OK;

/**
 * @author zhikai.z.wei
 */
@RestController
@RequestMapping("/api/v1/citDataPreview/")
public class CitDataPreviewController extends BaseController {

    @Autowired
    private CitDataPreviewServiceImpl citDataPreviewService;

    @PostMapping("getJournalMergeData")
    public PageInfo<CitJournalAdjustDto> getJournalMergeData(@RequestBody CitJournalAdjustDto citJournalAdjustDto) {
        logger.debug(String.format("CIT日记账合并预览 Condition:%s", JSON.toJSONString(citJournalAdjustDto)));
        return citDataPreviewService.getJournalMergeData(citJournalAdjustDto);
    }

    @RequestMapping(value = "exportJournalMergeData", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void exportJournalMergeData(@RequestBody CitJournalAdjustDto paras, HttpServletResponse response) {
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.addHeader("Access-Control-Expose-Headers", "Content-Type,Content-Disposition,x-file-name");
        String fileName = paras.getPeriodStart() + "-" + paras.getPeriodEnd();
        response.setCharacterEncoding("UTF-8");
        OutputStream os = null;
        try {
            response.addHeader("Content-Disposition", "attachment;filename="
                    + UUID.randomUUID() + ".xls");
            response.addHeader("x-file-name", fileName);
            os = response.getOutputStream();
            int count = citDataPreviewService.exportJournalMergeData(paras, os);

            if (count == 0) {
                response.setStatus(SC_NO_CONTENT);
            } else {
                response.setStatus(SC_OK);
            }
        } catch (IOException e) {
            logger.error(String.format("下载科目余额表-生成文件异常:%s",e.getMessage()));
        }
    }


    @PostMapping("getTbGeneVerData")
    public PageInfo<CitTrialBalanceDto> getTbGeneVerData(@RequestBody CitTrialBalanceDto citTrialBalanceDto) {
        logger.debug(String.format("CIT日记账合并预览 Condition:%s", JSON.toJSONString(citTrialBalanceDto)));
        return citDataPreviewService.getTbGeneVerData(citTrialBalanceDto);
    }

    @RequestMapping(value = "exportTbGeneVerData", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void exportTbGeneVerData(@RequestBody CitTrialBalanceDto paras, HttpServletResponse response) {
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.addHeader("Access-Control-Expose-Headers", "Content-Type,Content-Disposition,x-file-name");
        String fileName = paras.getPeriodStart() + "-" + paras.getPeriodEnd();
        response.setCharacterEncoding("UTF-8");
        OutputStream os = null;
        try {
            response.addHeader("Content-Disposition", "attachment;filename="
                    + UUID.randomUUID() + ".xls");
            response.addHeader("x-file-name", fileName);
            os = response.getOutputStream();
            int count = citDataPreviewService.exportTbGeneVerData(paras, os);

            if (count == 0) {
                response.setStatus(SC_NO_CONTENT);
            } else {
                response.setStatus(SC_OK);
            }
        } catch (IOException e) {
            logger.error(String.format("下载试算平衡表生成版-生成文件异常:%s",e.getMessage()));
        }
    }

    @PostMapping("getTbMappingVerData")
    public PageInfo<CitTrialBalanceDto> getTbMappingVerData(@RequestBody CitTrialBalanceDto citTrialBalanceDto) {
        logger.debug(String.format("CIT日记账合并预览 Condition:%s", JSON.toJSONString(citTrialBalanceDto)));
        return citDataPreviewService.getTbMappingVerData(citTrialBalanceDto);
    }


    @RequestMapping(value = "exportTbMappingVerData", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void exportTbMappingVerData(@RequestBody CitTrialBalanceDto paras, HttpServletResponse response) {
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.addHeader("Access-Control-Expose-Headers", "Content-Type,Content-Disposition,x-file-name");
        String fileName = paras.getPeriodStart() + "-" + paras.getPeriodEnd();
        response.setCharacterEncoding("UTF-8");
        OutputStream os = null;
        try {
            response.addHeader("Content-Disposition", "attachment;filename="
                    + UUID.randomUUID() + ".xls");
            response.addHeader("x-file-name", fileName);
            os = response.getOutputStream();
            int count = citDataPreviewService.exportTbMappingVerData(paras, os);

            if (count == 0) {
                response.setStatus(SC_NO_CONTENT);
            } else {
                response.setStatus(SC_OK);
            }
        } catch (IOException e) {
            logger.error(String.format("下载科目余额表-生成文件异常:%s",e.getMessage()));
        }
    }

}