自动化立体仓库 - WMS系统
pang.jiabao
2024-10-24 ef19ce2bc384c00b590ebdbd4e8c14ebfa9f0188
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -1,30 +1,108 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.InLocTimeDto;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.result.StockVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Mapper
@Repository
public interface LocDetlMapper extends BaseMapper<LocDetl> {
    List<LocDetl> listByPage(Map<String, Object> map);
    Integer listByPageCount(Map<String, Object> map);
    LocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
    int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
    int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
    int deleteItem2(@Param("locNo")String locNo, @Param("model")String model, @Param("batch")String batch);
    int updateAnfme2(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("model")String model, @Param("batch")String batch);
    List<LocDetl> getStockOutPage(Map<String, Object> map);
    Integer getStockOutPageCount(Map<String, Object> map);
    @Update("update asr_loc_detl set anfme=#{anfme}, modi_time = getDate() where loc_no = #{locNo} and matnr = #{matnr}")
    int updateAnfme(Double anfme, String locNo, String matnr);
    @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
    int updateLocNo(String newLocNo, String oldLocNo);
    @Select("SELECT wml.loc_no FROM asr_wrk_mast_log wml LEFT JOIN asr_wrk_detl_log wdl ON wml.wrk_no = wdl.wrk_no LEFT JOIN asr_loc_mast lm ON wml.loc_no = lm.loc_no WHERE (1 = 1 AND wdl.matnr = 'X004073XX' AND (wml.io_type = 1 OR wml.io_type = 11) AND wml.wrk_sts = 5 AND DateDiff(dd, wml.modi_time, getdate()) = 0 AND lm.loc_sts = 'F') ORDER BY wml.modi_time ASC")
    List<String> selectSameDetlToday(String matnr);
    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 >= #{start} AND lm.row1 <= #{end})  AND lm.loc_sts = 'F' AND DateDiff(dd, ld.appe_time, getdate()) = 0) ORDER BY ld.appe_time ASC")
    List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end);
    @Select("SELECT distinct ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE 1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 >= #{start} AND lm.row1 <= #{end}) AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0 AND (left(ld.batch, 4)) = (left(#{batch}, 4))")
    List<String> selectSameDetlToday2(@Param("matnr") String matnr, @Param("batch") String batch, @Param("start") Integer start, @Param("end") Integer end);
    List<LocDetl> getStockStatis(Map<String, Object> map);
    Integer getStockStatisCount(Map<String, Object> map);
    List<LocDetl> getStockStatisExcel();
    @Select("select sum(a.anfme) as sum from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr}")
    Double selectSumAnfmeByMatnr(@Param("matnr") String matnr);
    List<LocDetl> selectPakoutByRule(String matnr);
    List<LocDetl> getAsrsLocDetl(String matnr);
    Integer countLocNoNum(String locNo);
    // -------------------------------------------------
    List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos);
    Double queryStockAnfme(String matnr, String batch);
    List<StockVo> queryStockTotal();
    Integer sum();
    List<LocDetl> unreason();
    Double selectLocDetlSumQty(String locNo);
    void updateMatTurn(@Param("matnrOld")String matnrOld,@Param("matnr")String matnr);
    /**
     * 批量插入库存明细
     */
    int batchDetls(@Param("locDetls") List<LocDetl> locDetls);
    /**
     * 查询包装组号在库时间
     */
    List<InLocTimeDto> queryInLocTime(@Param("param") List<String> param);
    /**
     * 按包装组号列表查询库位号列表
     */
    List<LocDetl> selectLocNoByGroupNo(@Param("packageGroupNos") List<String> packageGroupNos);
    /**
     * 查找不在备货区,没有理货的,不是一箱多卷的物料集合(只会是一托一箱一卷或一托两箱都一卷),按分切时间排序,确保最先匹配的日期最接近
     * @param columnNum 备货区前几列
     * @return 库存明细
     */
    List<LocDetl> selectTallyGoosList(@Param("columnNum") int columnNum);
    /**
     * 按库位号更新库存明细理货状态
     * @param locNo 库位号
     * @param status 状态
     */
    void updateLhStsByLocNo(@Param("locNo") String locNo,@Param("status") int status);
}