package com.boco.nbd.wios.flow.controller;

import com.boco.nbd.framework.common.ResponseMessage2;
import com.boco.nbd.framework.common.util.IdUtil;
import com.boco.nbd.wios.flow.entity.po.OrderBlockedPO;
import com.boco.nbd.wios.flow.service.IOrderBlockedService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @Description: OrderBlockedController
 * @Author: ZQY
 * @Date: 2022/8/4
 **/
@RestController
@Slf4j
@RequestMapping("orderBlocked")
@Api(tags = "工单受阻")
public class OrderBlockedController {

    @Autowired
    private IOrderBlockedService orderBlockedService;

    /**
     * 新增受阻信息
     *
     * @param po
     * @return
     */
    @ApiOperation(value = "新增受阻信息")
    @PostMapping(value = "/add")
    public ResponseMessage2<Boolean> saveOrderBlocked(OrderBlockedPO po) {
        try {
            po.setId(IdUtil.getLongUUID()+"");
            orderBlockedService.insertSelective(po);
            return ResponseMessage2.Success();
        } catch (Exception e) {
            e.printStackTrace();
            log.error("新增受阻信息",e.getMessage());
            return ResponseMessage2.Failed(e.getMessage());


        }

    }


    /**
     * 获取受阻信息列表
     *
     * @param
     * @return
     */
    @ApiOperation(value = "获取受阻信息列表")
    @ApiImplicitParams({@ApiImplicitParam(name = "orderId", value = "订单ID", dataType = "String", paramType = "query", required = true),
                        @ApiImplicitParam(name = "nodeFlag", value = "流程节点标识", dataType = "String", paramType = "query", required = false)})
    @GetMapping(value = "/getList")
    public ResponseMessage2<List<OrderBlockedPO>> getList(String orderId, String nodeFlag) {

        return ResponseMessage2.Success2(orderBlockedService.getList(orderId,nodeFlag));
    }
}