package pwc.taxtech.atms.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import pwc.taxtech.atms.common.util.ResponseUtil;
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
import pwc.taxtech.atms.dto.previewData.CitEAMAssetsDisposalDto;
import pwc.taxtech.atms.dto.previewData.CitSalaryDataDto;
import pwc.taxtech.atms.dto.vatdto.TrialBalanceParam;
import pwc.taxtech.atms.entity.CitEAMAssetsDisposal;
import pwc.taxtech.atms.entity.CitSalaryAdvance;
import pwc.taxtech.atms.service.impl.CitPreviewDataServiceImpl;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;

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

/**
 * authoer kevin
 * version 1.0
 */
@Controller
@RequestMapping("api/v1/citPreviewDataController")
public class CitPreviewDataController extends  BaseController {

    @Autowired
    private CitPreviewDataServiceImpl citPreviewDataService;

    @RequestMapping("getSalaryAdvaceListData")
    @ResponseBody
    public CamelPagingResultDto<CitSalaryAdvance> getSalaryAdvaceListData(@RequestBody  CitSalaryDataDto citSalaryDataDto){
        return  new CamelPagingResultDto<>(citPreviewDataService.getCitSalaryAdvanceDataList(citSalaryDataDto));
    }

    @RequestMapping("getCitPreviewEamDisposalDataList")
    @ResponseBody
    public CamelPagingResultDto<CitEAMAssetsDisposal> getCitPreviewEamDisposalDataList(@RequestBody CitEAMAssetsDisposalDto citSalaryDataDto){
        return  new CamelPagingResultDto<>(citPreviewDataService.getCitPreviewEamDisposalDataList(citSalaryDataDto));
    }
        //eam资产处置记录表导出
    @RequestMapping(value = "exportDataEAM", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void exportDataEAM(@RequestBody CitEAMAssetsDisposalDto citEAMAssetsDisposalDto, HttpServletResponse response) {
        int count = citPreviewDataService.exportDataEAM(citEAMAssetsDisposalDto, response);
        if (count == 0) {
            response.setStatus(SC_NO_CONTENT);
        } else {
            response.setStatus(SC_OK);
        }
    }
    //预提重分类数据源
    @RequestMapping(value = "exportDataSalaryAdvance", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void exportDataSalaryAdvance(@RequestBody CitSalaryDataDto citSalaryDataDto, HttpServletResponse response) {
        int count = citPreviewDataService.exportDataSalaryAdvance(citSalaryDataDto, response);
        if (count == 0) {
            response.setStatus(SC_NO_CONTENT);
        } else {
            response.setStatus(SC_OK);
        }
    }


}