package com.sunda.spmsweb.overseacontroller;


import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsoversea.dto.OverseaWerksCostDTO;
import com.sunda.spmsoversea.dto.OverseaWerksCostQueryDTO;
import com.sunda.spmsoversea.service.IOverseaWerksCostService;
import com.sunda.spmsweb.util.JWTUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
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.RestController;

/**
 * <p>
 * 工厂车间映射成本中心配置 前端控制器
 * </p>
 *
 * @author Hzc
 * @since 2022-12-06
 */


@RestController
@RequestMapping("/overseaWerksCost")
@Slf4j
@Api(tags = "工厂车间映射成本中心配置", description = "工厂车间映射成本中心配置")
public class OverseaWerksCostController {

    @Autowired
    IOverseaWerksCostService iverseaWerksCostService;


    @RequestMapping("/getOverseaWerksCostPage")
    @ApiOperation(value = "工厂车间映射成本中心配置分页", notes = "工厂车间映射成本中心配置分页\n" +
            "示例参数：\n" +
            "{\n" +
            "\t\"current\": 1,\n" +
            "\t\"size\": 20,\n" +
            "\t\"uuid\": \"\",\n" +
            "\t\"werks\": \"\",\n" +
            "\t\"whsLocationCode\": \"\",\n" +
            "\t\"costCenter\": \"\",\n" +
            "\t\"costCenterName\": \"\"\n" +
            "}", httpMethod = "POST")
    public ResponseResult getOverseaWerksCostPage(@RequestBody OverseaWerksCostQueryDTO overseaWerksCostQueryDTO){
        try {
            return ResponseResult.success().add("overseaWerksCostList", iverseaWerksCostService.getOverseaWerksCostPage(overseaWerksCostQueryDTO));
        }catch (Exception e){
            log.error("getOverseaWerksCostPage-请求数据失败:"+e.getMessage());
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }


    @RequestMapping("/createOrUpdateOverseaWerksCost")
    @ApiOperation(value = "新建更新工厂车间映射成本中心配置", notes = "新建更新工厂车间映射成本中心配置\n" +
            "示例参数：\n" +
            "{\n" +
            "\t\"uuid\": \"\",\n" +
            "\t\"werks\": \"\",\n" +
            "\t\"whsLocationCode\": \"\",\n" +
            "\t\"costCenter\": \"\",\n" +
            "\t\"costCenterName\": \"\"\n" +
            "\t}]\n" +
            "}", httpMethod = "POST")
    public ResponseResult createOrUpdateOverseaWerksCost(@RequestBody OverseaWerksCostDTO overseaWerksCostDTO){
        try {
            String userId = JWTUtil.getUserId(SecurityUtils.getSubject().getPrincipal().toString());
            return iverseaWerksCostService.createOrUpdateOverseaWerksCost(overseaWerksCostDTO, userId);
        }catch (Exception e){
            log.error("createOrUpdateOverseaWerksCost-请求数据失败:"+e.getMessage());
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }

    @RequestMapping("/deleteOverseaWerksCost")
    @ApiOperation(value = "删除工厂车间映射成本中心配置", notes = "删除工厂车间映射成本中心配置\n" +
            "示例参数：\n" +
            "{\n" +
            "\t\"uuid\": \"\",\n" +
            "\t}]\n" +
            "}", httpMethod = "POST")
    public ResponseResult deleteOverseaWerksCost(@RequestBody OverseaWerksCostDTO overseaWerksCostDTO){
        try {
            String userId = JWTUtil.getUserId(SecurityUtils.getSubject().getPrincipal().toString());
            return iverseaWerksCostService.deleteOverseaWerksCost(overseaWerksCostDTO, userId);
        }catch (Exception e){
            log.error("deleteOverseaWerksCost-请求数据失败:"+e.getMessage());
            return ResponseResult.error("请求数据失败").add("error", e.getMessage());
        }
    }

}
