gongchunyi
2026-04-27 0be02df3d287f802c76e5738916301a877dfaa0e
src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
@@ -1,6 +1,5 @@
package com.ruoyi.production.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,22 +8,23 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Mapper
public interface ProductWorkOrderMapper extends BaseMapper<ProductWorkOrder> {
    IPage<ProductWorkOrderDto> pageProductWorkOrder(Page<ProductWorkOrderDto> page, @Param("c") ProductWorkOrderDto productWorkOrder);
    int updatePlanQuantity(Map<String, Object> params);
    ProductWorkOrderDto getProductWorkOrderFlowCard(@Param("id") Long id);
    List<ProductWorkOrderDto> selectWorkOrderStartStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
    ProductWorkOrder selectMax(@Param("datePrefix") String datePrefix);
    /**
     * 回滚工单计划数量:从production_product_output取quantity加回plan_quantity
     * @param productMainId
     * @return
     * 原子增加完成数量,防止并发超出计划数量
     * @return 影响行数(1 成功,0 失败)
     */
    int rollbackPlanQuantity(@Param("productMainId") Long productMainId);
    List<ProductWorkOrderDto> selectProductWorkOrderDtoList();
    int addCompleteQtyIfNotExceed(@Param("id") Long id, @Param("delta") BigDecimal delta);
}