package com.cf.imes.module.executor.dal.mysql.orderItem;

import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 生产单明细表 order_item Mapper
 *
 * @author 晨丰科技
 */
@Mapper
public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {

    List<PlateRespVO> selectPlatesDetailByOrderId(@Param("orderId")Long orderId, @Param("roomId")Long roomId ,
                                                  @Param("bodyId")Long bodyId , @Param("groupId")Long groupId ,
                                                  @Param("groupName")String groupName, @Param("organId") Long organId,
                                                  @Param("deleted") Integer deleted);

    List<OrderPartsRespVO> selectPartsDetailByOrderId(@Param("orderId")Long orderId, @Param("roomId")Long roomId ,
                                                      @Param("bodyId")Long bodyId , @Param("name")String name,
                                                      @Param("organId") Long organId, @Param("deleted") Integer deleted);


    List<OrderPlatesDetailRespVO> selectPartsByOrderId(@Param("orderId") Long orderId,
                                                       @Param("organId") Long organId,
                                                       @Param("deleted") Integer deleted);


    List<PlateRespVO> selectPlateList( @Param("reqVO") PlateDetailReqVO reqVO,@Param("organId") Long organId);


    PlateDetailRespVO selectPlateNumList(@Param("orderId") Long orderId,@Param("organId") Long organId);


    void deleteByPlateId(@Param("deletePlateIds")  List<Long> deletePlateIds);


}