| | |
| | | @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' ORDER BY lm.modi_time ASC") |
| | | List<String> selectSameDetl(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end); |
| | | |
| | | @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, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC") |
| | | List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end); |
| | | |
| | |
| | | boolean updateLocNo(String newLocNo, String oldLocNo); |
| | | |
| | | /** |
| | | * 获取相同规格货物的深库位号 |
| | | * @param matnr 产品号 |
| | | * @return locNo 库位号 |
| | | */ |
| | | List<String> getSameDetl(String matnr, Integer start, Integer end); |
| | | |
| | | /** |
| | | * 获取当天相同规格货物的深库位号 |
| | | * @param matnr 商品编号 |
| | | * @return locNo 库位号 |
| | |
| | | */ |
| | | Boolean isOutMost(String locNo); |
| | | |
| | | LocMast findOutMost(List<String> locNos); |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getSameDetl(String matnr, Integer start, Integer end) { |
| | | return this.baseMapper.selectSameDetl(matnr, start, end); |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getSameDetlToday(String matnr, Integer start, Integer end) { |
| | | return this.baseMapper.selectSameDetlToday(matnr, start, end); |
| | | } |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service("locMastService") |
| | | public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService { |
| | |
| | | return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo); |
| | | } |
| | | |
| | | @Override |
| | | public LocMast findOutMost(List<String> locNos) { |
| | | List<Integer> rows = locNos.stream().map(item -> Integer.parseInt(item.substring(0, 2))).distinct().collect(Collectors.toList()); |
| | | if (!rows.retainAll(new ArrayList<Integer>() {{ add(1);add(2);add(3);}}) |
| | | || !rows.retainAll(new ArrayList<Integer>() {{ add(8);add(9);add(10);add(11);}}) |
| | | || !rows.retainAll(new ArrayList<Integer>() {{ add(15);add(16);add(17);add(18);}}) |
| | | ) { |
| | | locNos.sort(Comparator.comparingInt(o -> Integer.parseInt(o.substring(0, 2)))); |
| | | } else if (!rows.retainAll(new ArrayList<Integer>() {{ add(4);add(5);add(6);add(7);}}) |
| | | || !rows.retainAll(new ArrayList<Integer>() {{ add(12);add(13);add(14);}}) |
| | | || !rows.retainAll(new ArrayList<Integer>() {{ add(19);add(20);add(21);}}) |
| | | ) { |
| | | locNos.sort((o1, o2) -> Integer.parseInt(o2.substring(0, 2)) - Integer.parseInt(o1.substring(0, 2))); |
| | | } |
| | | for (String locNo : locNos) { |
| | | LocMast locMast = this.selectById(locNo); |
| | | if (locMast.getLocSts().equals("O")) { |
| | | return locMast; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | @Slf4j |
| | | @Data |
| | | public class LocTypeDto { |
| | | public class LocTypeDto implements Cloneable { |
| | | |
| | | // 高低类型{0:未知,1:低库位,2:高库位} |
| | | private Short locType1; |
| | |
| | | log.info(JSON.toJSONString(this)); |
| | | } |
| | | |
| | | @Override |
| | | public LocTypeDto clone() { |
| | | try { |
| | | return (LocTypeDto) super.clone(); |
| | | } catch (CloneNotSupportedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.core.common.Arith; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.Shelves; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | // 1.当检索库排为浅库位排时,优先寻找当前库排的深库位排 |
| | | if (locMast == null) { |
| | | locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3()); |
| | | locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1()); |
| | | // 因库位移转、需预留空库位 |
| | | if (!locMastService.checkEmptyCount(locMast)) { |
| | | locMast = null; |