package cn.iocoder.yudao.module.mes.dal.mysql.wm.scrap;
|
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.scrap.MesWmScrapReceiptDO;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.Map;
|
|
@Mapper
|
public interface MesWmScrapReceiptMapper extends BaseMapperX<MesWmScrapReceiptDO> {
|
default MesWmScrapReceiptDO selectByCode(String code) {
|
return selectOne(MesWmScrapReceiptDO::getCode, code);
|
}
|
@Select("SELECT COUNT(*) FROM mes_wm_scrap_receipt r JOIN mes_wm_transaction t " +
|
"ON t.id = r.transaction_id AND t.deleted = 0 " +
|
"WHERE r.deleted = 0 AND t.material_stock_id = #{stockId}")
|
long countByStockId(@Param("stockId") Long stockId);
|
default PageResult<MesWmScrapReceiptDO> selectReceiptPage(PageParam page, Long workOrderId) {
|
return selectPage(page, new LambdaQueryWrapperX<MesWmScrapReceiptDO>()
|
.eqIfPresent(MesWmScrapReceiptDO::getWorkOrderId, workOrderId)
|
.orderByDesc(MesWmScrapReceiptDO::getId));
|
}
|
@Select("SELECT work_order_id AS workOrderId, work_order_code AS workOrderCode, item_id AS itemId, " +
|
"SUM(quantity) AS quantity FROM mes_wm_scrap_receipt " +
|
"WHERE deleted = 0 AND receipt_time >= #{start} AND receipt_time < #{end} " +
|
"GROUP BY work_order_id, work_order_code, item_id ORDER BY work_order_code, item_id")
|
List<Map<String, Object>> summarize(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
|
}
|