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 com.zy.common.service.CommonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; 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, List rows, Short locType1) { return this.baseMapper.queryFreeLocMast(row, rows, 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, Boolean pakin) { return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo, true); } @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(CommonService.FIRST_GROUP_ROW_LIST)) { locNos.sort(Comparator.comparingInt(o -> Integer.parseInt(o.substring(0, 2)))); } else if (!rows.retainAll(CommonService.SECOND_GROUP_ROW_LIST)) { 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; } }