自动化立体仓库 - WMS系统
#
lty
2 天以前 921d69a620b26ee8616b1564f4fa3b228e09d4d6
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.zy.asrs.mapper;
 
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.param.AbnormalLocDetlParam;
import com.zy.asrs.entity.result.LocDetlAll;
import com.zy.asrs.entity.result.LocDetlDTO;
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<LocDetlAll> selectAllOwner(LocDetlDTO locDetlDTO);
 
    int selectAllCount(LocDetlDTO locDetlDTO);
 
    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,
                       @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
                       @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3 );
 
    int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,
                   @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
                   @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3 );
 
    int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,
                    @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
                    @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3 );
 
    List<LocDetl> getStockOutPage(Map<String, Object> map);
 
    Integer getStockOutPageCount(Map<String, Object> map);
 
    @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
    int updateLocNo(String newLocNo, String oldLocNo);
 
    @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 top 1 ld.* from asr_loc_detl ld left join asr_loc_mast lm on ld.loc_no = lm.loc_no " +
            "where lm.crn_no = #{crnNo} and lm.loc_sts = 'F' and lm.frozen = 0 and lm.deleted = 0 and lm.whs_type = 1 " +
            "and ld.appe_time is not null and (ld.frozen is null or ld.frozen = 0) " +
            "order by ld.appe_time asc, ld.id asc")
    LocDetl selectOldestLocDetl(@Param("crnNo") Integer crnNo);
 
    @Select("select top 1 ld.matnr from asr_loc_detl ld left join asr_loc_mast lm on ld.loc_no = lm.loc_no " +
            "where lm.crn_no = #{crnNo} and lm.loc_sts = 'F' and lm.frozen = 0 and lm.deleted = 0 and lm.whs_type = 1 " +
            "and (ld.frozen is null or ld.frozen = 0) and ld.matnr is not null " +
            "group by ld.matnr order by count(1) desc")
    String selectMostMatnrByCrnNo(@Param("crnNo") Integer crnNo);
 
    @Select("select top 1 ld.* from asr_loc_detl ld left join asr_loc_mast lm on ld.loc_no = lm.loc_no " +
            "where lm.crn_no = #{crnNo} and lm.loc_sts = 'F' and lm.frozen = 0 and lm.deleted = 0 and lm.whs_type = 1 " +
            "and ld.matnr = #{matnr} and ld.appe_time is not null and (ld.frozen is null or ld.frozen = 0) " +
            "order by ld.appe_time asc, ld.id asc")
    LocDetl selectOldestLocDetlByCrnNoAndMatnr(@Param("crnNo") Integer crnNo, @Param("matnr") String matnr);
 
    @Select("select count(1) from asr_loc_detl ld left join asr_loc_mast lm on ld.loc_no = lm.loc_no " +
            "where lm.crn_no = #{crnNo} and lm.frozen = 0 and lm.deleted = 0 and lm.whs_type = 1 " +
            "and ld.matnr = #{matnr} and (ld.frozen is null or ld.frozen = 0)")
    Integer countMatnrByCrnNo(@Param("crnNo") Integer crnNo, @Param("matnr") String matnr);
 
    List<String> selectSameDetlTodayBatch(@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> getStockStatis2(Map<String, Object> map);
 
    List<AbnormalLocDetlParam> groupLocList(Map<String, Object> map);
 
    Integer groupLocListCount(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);
    List<LocDetl> queryStockAll(@Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos, @Param("matnr")String matnr, @Param("batch")String batch,
                                @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
                                @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3);
 
    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);
 
    List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapY(Integer crnNo);
 
    List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapN(Integer crnNo);
 
    List<LocDetl> selectLocDetlUnilateralMoveShuttleY(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
    List<LocDetl> selectLocDetlUnilateralMoveShuttleN(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
 
    List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo);//通过订单号、物料号、物料名称、规格、库位号进行模糊搜索
 
    /**
     * 根据库位号更新库存明细为冻结状态
     */
    void updateDetlFrozenByLocNo(@Param("locNo") String locNo);
 
    /**
     * 冻结/解冻库存明细
     * @param locNo 库位号
     * @param matnr 物料编码
     * @param batch 批次
     * @param frozen 0解冻,1冻结
     */
    void frozenInventory(@Param("locNo") String locNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("frozen") int frozen);
 
}