package cn.iocoder.yudao.module.tickets.controller.admin;


import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.*;

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

import static cn.iocoder.yudao.framework.common.pojo.CommonResult.ok;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;

/**
 * 维修工单子表(DlRepairTitem)表控制层
 *
 * @author 小李
 * @date 18:21 2024/9/13
 **/
@RestController
    @RequestMapping("/repair/titem")
public class DlRepairTitemController {
    /**
     * 服务对象
     */
    @Resource
    private DlRepairTitemService dlRepairTitemService;

    /**
     * 维修工单子表 分页
     *
     * @author 小李
     * @date 10:34 2024/9/21
     * @param repairTitemRespVO 查询对象
     * @param pageNo 页码
     * @param pageSize 条数
    **/
    @GetMapping("/page")
    @Operation(summary = "维修工单子表 分页")
    public CommonResult<?> getTItemPage(DlRepairTitemRespVO repairTitemRespVO,
                                        @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
                                        @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
        Page<DlRepairTitemRespVO> page = new Page<>(pageNo, pageSize);
        return success(dlRepairTitemService.getTItemPage(repairTitemRespVO, page));
    }

    /**
     * 获取当前操作人操作的工单中的项目
     *
     * @author 小李
     * @date 15:01 2024/10/18
     * @param ticketId 工单ID
    **/
    @GetMapping("/listProject")
    @Operation(summary = "获取当前操作人操作的工单中的项目")
    public CommonResult<?> getProjectList(@RequestParam("ticketId") String ticketId){
        return success(dlRepairTitemService.getProjectList(ticketId));
    }

    /**
     * 修改维修工单子表的维修人员和销售人员信息(app)
     * @param dlRepairTitemReqVO
     * @return
     */
    @PutMapping("/updateRepairAndSale")
    @Operation(summary = "修改维修工单子表的维修人员和销售人员信息")
    public CommonResult<?> updateRepairAndSale(@RequestBody DlRepairTitemReqVO dlRepairTitemReqVO){
        return success(dlRepairTitemService.updateRepairAndSale(dlRepairTitemReqVO));
    }

   /**
    * 更新工单子表，维修项目配件的单价、数量、折扣、单项总价等
    * @author vinjor-M
    * @date 16:10 2024/10/31
    * @param itemList 工单子表列表
    * @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
   **/
    @PutMapping("/updateRepairItem")
    @Operation(summary = "修改维修工单子表的维修人员和销售人员信息")
    public CommonResult<?> updateRepairItem(@RequestBody List<DlRepairTitem> itemList){
        dlRepairTitemService.updateRepairItem(itemList);
        return ok();
    }

    /**
     * 查看单个维修子表的数据
     *
     * @author 小李
     * @param id 子表ID
    **/
    @GetMapping("/getById")
    @Operation(summary = "查看单个维修子表的数据")
    public CommonResult<?> getItemById(@RequestParam("id") String id){
        return success(dlRepairTitemService.getItemById(id));
    }

    /**
     * 修改单个工单子项的内容
     *
     * @author 小李
     * @date 15:41 2024/10/24
     * @param dlRepairTitemReqVO 对象
    **/
    @PostMapping("/updateById")
    @Operation(summary = "修改单个工单子项的内容")
    public CommonResult<?> updateItemById(@RequestBody DlRepairTitemReqVO dlRepairTitemReqVO){
        dlRepairTitemService.updateItemById(dlRepairTitemReqVO);
        return CommonResult.ok();
    }

    /**
     * 维修工单单个子项
     *
     * @author 小李
     * @date 20:18 2024/10/24
     * @param id 工单子项ID
    **/
    @DeleteMapping("/removeById")
    @Operation(summary = "维修工单单个子项")
    public CommonResult<?> removeItemById(@RequestParam("id") String id){
        dlRepairTitemService.removeItemById(id);
        return CommonResult.ok();
    }
}

