package com.prolog.rdc.tms.rmi.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import com.prolog.framework.common.message.RestMessage;
import com.prolog.rdc.tms.model.dto.print.PrinterBatchConfigInfoDTO;
import com.prolog.rdc.tms.model.dto.print.PrinterConfigInfoDTO;
import com.prolog.rdc.tms.model.dto.print.PrinterTemplateDTO;
import com.prolog.rdc.tms.model.vo.print.PrinterBatchConfigInfoVO;
import com.prolog.rdc.tms.model.vo.print.PrinterConfigInfoVO;
import com.prolog.rdc.tms.rmi.hystrix.PrintHystrix;

import io.swagger.annotations.ApiOperation;

/**
 * 
 *
 * 打印服务调用
 *
 * @className :PrintFeign
 * @author :fanzw
 * @creationTime :2022/05/17
 * @description :
 *
 * @modifier :fanzw
 * @modifyTime :2022/05/17
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
@FeignClient(value = "${prolog.rdc.services.tms.maindata.name}", url = "${prolog.rdc.services.tms.maindata.url}", fallbackFactory = PrintHystrix.class)
public interface PrintFeign {

	/**
	 * 打印模板查询
	 * 
	 * @param id
	 * @return
	 */
	@GetMapping("/template/detail")
	RestMessage<PrinterTemplateDTO> detail(@RequestParam("id") Long id);

	@ApiOperation(value = "获取打印机和模版信息", notes = "获取打印机和模版信息")
	@PostMapping({ "/printer/queryPrinterInfo" })
	RestMessage<PrinterConfigInfoDTO> queryPrinterInfo(@RequestBody PrinterConfigInfoVO var1);

	@ApiOperation(value = "批量获取打印机和模版信息", notes = "获取打印机和模版信息")
	@PostMapping({ "/printer/queryBatchPrinterInfo" })
	RestMessage<PrinterBatchConfigInfoDTO> queryBatchPrinterInfo(@RequestBody PrinterBatchConfigInfoVO var1);
}
