package com.unis.base.client;

import com.unis.base.common.vo.*;
import com.unis.common.utils.ResponseWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * create by: yangshengjie
 * create time: 2019/9/20 17:25
 *
 */
@FeignClient(name = "base-server")
@Component
@Api(value = "药剂信息",tags = "药剂信息")
public interface MedicineInfoFeign {
	/**
	 * 分页获取药剂信息列表
	 * @param dYpxxQueryVO
	 * @param page
	 * @param limit
	 * @return
	 * @Param: 所属库名，药剂名称，月份
	 * @return 药剂信息列表
     */
   @PostMapping("/findDYpxxList/{pageNum}/{pageSize}")
   @ApiOperation(value = "分页获取药剂信息列表",notes = "参数：所属库名，药剂名称，月份")
   public ResponseWrapper findDYpxxList(@RequestBody DYpxxQueryVO dYpxxQueryVO,
   		@PathVariable(value = "pageNum") Integer pageNum, @PathVariable(value = "pageSize") Integer pageSize);
    
    
	/**
	 * 药剂信息信息-更改备案状态
	 * @param tyXzzyxxVO
	 * @return
	 */
	@PostMapping(value = "/medicineinfoStatus")
	@ApiOperation(value = "药剂信息信息-更改备案状态", notes = "参数：备案信息")
	public ResponseWrapper updateMedicineinfoStatus(@RequestBody DYpxxHisVO dYpxxHisVO) ;
	
	/**
	 * @author 张琪
	 * @Description 根据主键ID获取药剂信息
	 * @return 药剂信息信息
	 */
	@ApiOperation(value = "根据主键编码获取药剂信息", notes = "参数：主键ID")
	@GetMapping(value = "/medicineinfoInfo/{ypId}")
	public ResponseWrapper getMedicineinfoInfoByLsId(@PathVariable("ypId")String ypId) ;

	@ApiOperation(value = "查询报表list，分页", notes = "参数：企业库点名称，时间模糊查询、当前页、页面大小")
	@ApiImplicitParams({
			@ApiImplicitParam(name = "page", value = "起始页", required = true),
			@ApiImplicitParam(name = "size", value = "每页展示行数", required = true)})
	@PostMapping(value = "/reportsInfo")
	public ResponseWrapper findReportsInfoList(@RequestBody KdBaseInfoVO VO,
											   @RequestParam(value = "page") Integer page,
											   @RequestParam(value = "size") Integer size);

	@ApiOperation(value = "根据库点id查询储量化学药剂保管台账信息", notes = "参数：储量化学药剂保管台账库点id")
	@GetMapping(value = "/clhxyjbgtz/{id}/")
	public ResponseWrapper findClhxyjbgtzByKddm(@PathVariable("id") String id);

	@ApiOperation(value = "根据库点id查询废弃危险化学品产生、贮存、利用处置情况表信息", notes = "参数：废弃危险化学品产生、贮存、利用处置情况表库点id")
	@GetMapping(value = "/fqwxhxpcszclyclqkb/{id}/")
	public ResponseWrapper findFqwxhxpcszclyclqkbByKddm(@PathVariable("id") String id);

	@ApiOperation(value = "根据库点id查询危险化学品环境管理排查基本表信息", notes = "参数：危险化学品环境管理排查基本表信息库点id")
	@GetMapping(value = "/wxhxphjglpcjbbByKdmc/{id}/")
	public ResponseWrapper findWxhxphjglpcjbbVOBykdmc(@PathVariable("id") String id);

	@ApiOperation(value = "根据库点代码和时间查询危险化学品环境管理排查基本表信息", notes = "参数：危险化学品环境管理排查基本表信息库点代码和时间")
	@PostMapping(value = "/wxhxphjglpcjbbApp/")
	public ResponseWrapper findWxhxphjglpcjbbVOApp(@RequestBody KdBaseInfoVO VO);

}
