gaoluyang
5 天以前 6b8585fc452ecdcaa82d86fab79a9f27bb442851
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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> {
    @Select("SELECT l.item_id AS itemId, l.batch_id AS batchId, l.batch_code AS batchCode, SUM(l.quantity) AS quantity FROM mes_wm_product_produce p " +
            "JOIN mes_wm_product_produce_line l ON l.produce_id=p.id AND l.deleted=0 " +
            "WHERE p.deleted=0 AND p.work_order_id=#{orderId} AND p.status=#{finished} " +
            "AND l.item_id IS NOT NULL AND l.quantity > 0 GROUP BY l.item_id,l.batch_id,l.batch_code")
    List<cn.iocoder.yudao.module.mes.controller.admin.wm.scrap.MesWmScrapReceiptController.OutputItem> selectOrderOutputs(
            @Param("orderId") Long orderId, @Param("finished") Integer finished);
    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);
}