package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; 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.service.WorkService; 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.Collections; import java.util.Iterator; import java.util.List; @Service("locMastService") public class LocMastServiceImpl extends ServiceImpl implements LocMastService { @Autowired private RowLastnoService rowLastnoService; @Autowired private WorkService workService; @Override public List queryFreeLocMast(List rows, Integer rowsLen, Short locType1) { return this.baseMapper.queryFreeLocMast(rows, rowsLen, locType1); } @Override public LocMast queryFreeLocMast0(Integer row, Short locType1) { return this.baseMapper.queryFreeLocMast0(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.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.getOutLayerRow(locNo, true); } public static void main(String[] args) { List groupLoc = Utils.getGroupLoc("2300101"); Collections.reverse(groupLoc); System.out.println(JSON.toJSONString(groupLoc)); } @Override public LocMast findOutMost(String locNo) { int row = Utils.getRow(locNo); List locNos = Utils.getGroupLoc(locNo); if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { Collections.reverse(locNos); } else { throw new RuntimeException("库位解析异常"); } // 入库外层库位滞空 for (int i = 0; i excludeLocNos) { List groupLoc = Utils.getGroupOuterLoc(locNo); Iterator iterator = groupLoc.iterator(); while (iterator.hasNext()) { String next = iterator.next(); LocMast locMast = this.selectById(next); if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { if (!excludeLocNos.contains(locMast.getLocNo())) { continue; } } iterator.remove(); } workService.shuttleTransfer(groupLoc); } @Override public Integer getOutCrnNo(LocMast locMast) { int row = Utils.getRow(locMast.getLocNo()); if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { return 1; } if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { return 3; } else { return locMast.getCrnNo(); } } }