package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocMast; import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.RowLastnoService; import com.zy.asrs.utils.Utils; 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 implements LocMastService { @Autowired private RowLastnoService rowLastnoService; @Override public LocMast queryFreeLocMast(Integer row, Short locType1) { return this.baseMapper.queryFreeLocMast(row, locType1); } @Override public List queryGroupEmptyStock(String sourceLocNo) { if (Cools.isEmpty(sourceLocNo)) { return null; } LocMast sourceStock = this.selectById(sourceLocNo); if (Cools.isEmpty(sourceStock)) { return null; } return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo()); } @Override public Boolean checkEmptyCount(LocMast locMast) { if (locMast == null) { return false; } return this.baseMapper.selectEmptyLocCount(locMast.getLocType1(), locMast.getCrnNo()) > 1; } @Override public Boolean checkWhole(List locDetls) { return null; } @Override public Boolean isOutMost(String locNo) { return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo); } @Override public LocMast findOutMost(List locNos) { List rows = locNos.stream().map(item -> Integer.parseInt(item.substring(0, 2))).distinct().collect(Collectors.toList()); if (!rows.retainAll(new ArrayList() {{ add(1);add(2);add(3);}}) || !rows.retainAll(new ArrayList() {{ add(8);add(9);add(10);add(11);}}) || !rows.retainAll(new ArrayList() {{ 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() {{ add(4);add(5);add(6);add(7);}}) || !rows.retainAll(new ArrayList() {{ add(12);add(13);add(14);}}) || !rows.retainAll(new ArrayList() {{ 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; } }