package com.product.data.center.controller;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.data.center.config.ErrorCode;
import com.product.data.center.service.SNAssociatedItemService;
import com.product.module.sys.version.ApiVersion;
import com.product.util.BaseUtil;

/**
 * 	SN鍏宠仈鐗╂枡
 * @author 86151
 *
 */
@RestController
@RequestMapping("/api/sn-item")
public class SNAssociatedItemController extends AbstractBaseController{

	@Autowired
	SNAssociatedItemService snAssociatedItemService;
	
	/**
	 * 	SN鍏宠仈鐗╂枡鎶ヨ〃鏌ヨ
	 * @param request
	 * @return
	 */
	@PostMapping("/list/{version}")
    @ApiVersion(1)
	public String listSNItemInfo(HttpServletRequest request) {
		try {
			FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
			return BaseUtil.success(snAssociatedItemService.listSNItemInfo(fse));
		} catch (BaseException e) {
            e.printStackTrace();
            return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			return error(ErrorCode.SN_ASSOCIATED_ITEM_FAIL.getValue(), ErrorCode.SN_ASSOCIATED_ITEM_FAIL.getText()+e.getMessage());
		}
	}
	
	/**
	 * 	鐢熸垚EXCEL
	 * @param request
	 * @return
	 */
	@PostMapping("/create-report/{version}")
    @ApiVersion(1)
	public String createReport(HttpServletRequest request, HttpServletResponse response) {
		try {
			snAssociatedItemService.getReportExcel(request, response);
			return OK();
		} catch (BaseException e) {
            e.printStackTrace();
            return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			return error(ErrorCode.EXPORT_FAIL.getValue() ,ErrorCode.EXPORT_FAIL.getText()+e.getMessage());
		}
	}
}