package com.sunda.spmsweb.overseacontroller;


import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsoversea.dto.EamFormerSkuQueryDTO;
import com.sunda.spmsoversea.service.IEamFormerSkuService;
import com.sunda.spmsweb.util.JWTUtil;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * <p>
 * EAM旧件申请表 前端控制器
 * </p>
 *
 * @author Hzc
 * @since 2023-11-16
 */
@RestController
@RequestMapping("/eam-former-sku")
public class EamFormerSkuController {
    @Autowired
    IEamFormerSkuService iEamFormerSkuService;


    @RequestMapping("/getEamFormerSkuPage")
    @ApiOperation(value = "获取旧件申请表头分页", notes = "获取旧件申请表头分页\n" +
            "示例参数：\n" +
            "{\n" +
            "\t\"beginDate\": \"\",\n" +
            "\t\"current\": 1,\n" +
            "\t\"endDate\": \"\",\n" +
            "\t\"size\": 20,\n" +
            "\t\"spmsId\": \"\",\n" +
            "\t\"spmsStatus\": \"\",\n" +
            "\t\"uuidRequisition\": \"\",\n" +
            "\t\"createUser\": \"999947\",\n" +
            "\t\"werks\": \"\",\n" +
            "\t\"whsLocationCode\": \"\",\n" +
            "\t\"workshopCode\": \"\"\n" +
            "}", httpMethod = "POST")
    @RequiresPermissions("eam-former-sku-getEamFormerSkuPage")
    public ResponseResult getOverseaWhsInPage(@RequestBody EamFormerSkuQueryDTO eamFormerSkuQueryDTO){
        try {
            return ResponseResult.success().add("overseaRequisitionList", iEamFormerSkuService.getEamFormerSkuPage(eamFormerSkuQueryDTO));
        }catch (Exception e){
            e.printStackTrace();
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }


    @RequestMapping("/getRequisitionAndDtl")
    @ApiOperation(value = "获取一条旧件申请及其明细", notes = "获取旧件申请及其明细\n" +
            "示例参数：uuidRequisition = cc913e66a42175f9e0530101007f5622, acfaf2eaf0824b8a912dbd22b0075e07\n" +
            "", httpMethod = "POST")
    @RequiresPermissions("eam-former-sku-getRequisitionAndDtl")
    public ResponseResult getRequisitionAndDtl(@RequestParam String uuidRequisition){
        try {
            return iEamFormerSkuService.getRequisitionAndDtl(uuidRequisition);
        }catch (Exception e){
            e.printStackTrace();
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }


    @RequestMapping("/rollBackEamReturnSku")
    @ApiOperation(value = "旧件申请撤回", notes = "旧件申请撤回\n" +
            "状态说明：单据状态(0已完成;1已生成入库任务;)。\n" +
            "示例参数：uuidRequisition = cc913e66a42475f9e0530101007f5622；dataVersion = 686；\n", httpMethod = "POST")
    @RequiresPermissions("eam-former-sku-rollBackEamFormerSku")
    public ResponseResult rollBackEamFormerSku(@RequestParam String uuidRequisition, @RequestParam Integer dataVersion,@RequestParam String cancelReason){
        try {
            String userId = JWTUtil.getUserId(SecurityUtils.getSubject().getPrincipal().toString());
            return iEamFormerSkuService.rollBackEamFormerSku(uuidRequisition, dataVersion, userId,cancelReason);
        }catch (Exception e){
            e.printStackTrace();
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }
}
