package com.jsh.erp.controller.pda;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.jsh.erp.base.AjaxResult;
import com.jsh.erp.base.BaseController;
import com.jsh.erp.base.TableDataInfo;
import com.jsh.erp.datasource.entities.DepotHead;
import com.jsh.erp.datasource.entities.DepotItem;
import com.jsh.erp.datasource.entities.Supplier;
import com.jsh.erp.datasource.pda.dto.PDADepotHeadDTO;
import com.jsh.erp.datasource.pda.vo.PDADepotHeadVO;
import com.jsh.erp.datasource.pda.vo.PDADepotItemVO;
import com.jsh.erp.query.LambdaQueryWrapperX;
import com.jsh.erp.service.DepotHeadService;
import com.jsh.erp.service.DepotItemService;
import com.jsh.erp.service.SupplierService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping(value = "/pda")
@Api(tags = {"PDA接口"})
public class PdaController extends BaseController {

    @Resource
    private DepotHeadService depotHeadService;

    @Resource
    private DepotItemService depotItemService;

    @Resource
    private SupplierService supplierService;

    /**
     * 采购入库
     * @return
     */
    @PostMapping ("/purchaseInventory")
    @ApiOperation(value = "采购入库")
    public TableDataInfo purchaseInventory(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO) {
        pdaDepotHeadDTO.setSubType("采购订单");
        startPage();
        List<PDADepotHeadVO> pdaDepotHeadVOList = depotHeadService.pdaList(pdaDepotHeadDTO);
        return getDataTable(pdaDepotHeadVOList);
    }

    @PostMapping("/saleOrder")
    @ApiOperation(value = "检货任务")
    public TableDataInfo saleOrder(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO) {
        pdaDepotHeadDTO.setSubType("销售订单");
        startPage();
        List<PDADepotHeadVO> pdaDepotHeadVOList = depotHeadService.pdaList(pdaDepotHeadDTO);
        return getDataTable(pdaDepotHeadVOList);
    }

    @ApiModelProperty(value = "订单详情")
    @GetMapping("/orderInfo/{id}")
    public AjaxResult orderInfo(@PathVariable("id") Long id){
        DepotHead depotHead = depotHeadService.getOne(new LambdaQueryWrapperX<DepotHead>().eq(DepotHead::getId, id));
        depotHead.setSupplierName(supplierService.getOne(new LambdaQueryWrapperX<Supplier>().eq(Supplier::getId, depotHead.getOrganId())).getSupplier());
        return AjaxResult.success(depotHead);
    }

    @GetMapping("/orderDetail/{id}")
    @ApiOperation("订单明细")
    public TableDataInfo orderDetail(@PathVariable("id") Long id) {
        startPage();
        List<PDADepotItemVO> list = depotItemService.pdaList(id);
        return getDataTable(list);
    }

    @ApiModelProperty("订单开始处理")
    @GetMapping("/orderStartHandle/{id}")
    public AjaxResult orderStartHandle(@PathVariable("id") Long id) {
        depotHeadService.update(new UpdateWrapper<DepotHead>().set("status", "4").eq("id", id));
        return AjaxResult.success();
    }



}
