package com.zy.asrs.utils; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.constant.AsrsConstants; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.service.AgvLocMastService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; @Component public class LocUtils { @Autowired private AgvLocMastService agvLocMastService; /** * 查询库位 * @param type * @param factory * @return */ public AgvLocMast getLocNoRuleByFactory(int type, boolean isEmpty, String factory) { if (Cools.isEmpty(factory)) { throw new CoolException("搜索库位时,订单类型错误"); } try { EntityWrapper wrapper = new EntityWrapper<>(); wrapper.eq("loc_sts", "O").eq("loc_type1", type); if (factory.equalsIgnoreCase(AsrsConstants.ERCHANG)) { if (isEmpty) { wrapper.orderBy("lev1", true); } else { wrapper.orderBy("lev1", false); } } else if (factory.equalsIgnoreCase(AsrsConstants.SANCHANG)) { wrapper.orderBy("lev1", true); } List agvLocMasts = agvLocMastService.selectList(wrapper); for (AgvLocMast agvLocMast : agvLocMasts) { AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper().eq("loc_no", agvLocMast.getLocNo())); if (agvLocMast1.getLocSts().equals("O")) { return agvLocMast1; } } throw new CoolException("搜索库位时,未找到可入库库位。"); } catch (Exception e) { throw new CoolException("搜索库位时,未找到可入库库位。"); } } /** * 查询库位 * @param type * @param floor * @return */ public AgvLocMast getLocNoRuleByFloor(int type, Integer floor) { try { EntityWrapper wrapper = new EntityWrapper<>(); wrapper.eq("loc_sts", "O").eq("loc_type1", type); if (floor == 4) { wrapper.orderBy("lev1", false).orderBy("row1", true); } else { wrapper.orderBy("lev1", true); } List agvLocMasts = agvLocMastService.selectList(wrapper); for (AgvLocMast agvLocMast : agvLocMasts) { AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper().eq("loc_no", agvLocMast.getLocNo())); if (agvLocMast1.getLocSts().equals("O")) { return agvLocMast1; } } throw new CoolException("搜索库位时,未找到可入库库位。"); } catch (Exception e) { throw new CoolException("搜索库位时,未找到可入库库位。"); } } }