|  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import javax.swing.*; | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.concurrent.TimeUnit; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void startupFullTakeStore(StockOutParam param, Long userId) { | 
 |  |  |         ArrayList<String> locNos = new ArrayList<>(); | 
 |  |  |         for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ | 
 |  |  |             locNos.add(locDetl.getLocNo()); | 
 |  |  |         } | 
 |  |  |         //检测是否为浅库位 | 
 |  |  |         List<LocMast> locMasts = null; | 
 |  |  |         boolean sign=false; | 
 |  |  |         String th = ""; | 
 |  |  |         for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ | 
 |  |  |             int row = getRow(locDetl.getLocNo()); | 
 |  |  |             int bay = getBay(locDetl.getLocNo()); | 
 |  |  |             int lev = getLev(locDetl.getLocNo()); | 
 |  |  |             if (!(row==4 || row==5)){ | 
 |  |  |                 if (row>5){ | 
 |  |  |                     locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row) | 
 |  |  |                             .eq("bay1",bay).eq("lev1",lev)); | 
 |  |  |                     for (LocMast locMast1:locMasts){ | 
 |  |  |                         if (locNos.contains(locMast1.getLocNo())){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (locMast1.getRow1()<row){ | 
 |  |  |                             if (!locMast1.getLocSts().equals("O")){ | 
 |  |  |                                 sign=true; | 
 |  |  |                                 th="库位号:"+locDetl.getLocNo()+" 浅库位有非空库位!"; | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }else { | 
 |  |  |                     locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row) | 
 |  |  |                             .eq("bay1",bay).eq("lev1",lev)); | 
 |  |  |                     for (LocMast locMast1:locMasts){ | 
 |  |  |                         if (locNos.contains(locMast1.getLocNo())){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (locMast1.getRow1()>row){ | 
 |  |  |                             if (!locMast1.getLocSts().equals("O")){ | 
 |  |  |                                 sign=true; | 
 |  |  |                                 th="库位号:"+locDetl.getLocNo()+" 浅库位有非空库位!"; | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (sign){ | 
 |  |  |             throw new CoolException("出库失败;"+th); | 
 |  |  |         } | 
 |  |  |         // 目标站点状态检测 | 
 |  |  |         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); | 
 |  |  |         // 获取库位明细 | 
 |  |  | 
 |  |  |         } else { | 
 |  |  |             throw new CoolException("库存不存在"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 通过库位号获取 排 | 
 |  |  |      */ | 
 |  |  |     public static int getRow(String locNo) { | 
 |  |  |         if (!Cools.isEmpty(locNo)) { | 
 |  |  |             return Integer.parseInt(locNo.substring(0, 2)); | 
 |  |  |         } | 
 |  |  |         throw new RuntimeException("库位解析异常"); | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 通过库位号获取 列 | 
 |  |  |      */ | 
 |  |  |     public static int getBay(String locNo) { | 
 |  |  |         if (!Cools.isEmpty(locNo)) { | 
 |  |  |             return Integer.parseInt(locNo.substring(2, 5)); | 
 |  |  |         } | 
 |  |  |         throw new RuntimeException("库位解析异常"); | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 通过库位号获取 层 | 
 |  |  |      */ | 
 |  |  |     public static int getLev(String locNo) { | 
 |  |  |         if (!Cools.isEmpty(locNo)) { | 
 |  |  |             return Integer.parseInt(locNo.substring(5, 7)); | 
 |  |  |         } | 
 |  |  |         throw new RuntimeException("库位解析异常"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void emptyPlateOut(EmptyPlateOutParam param, Long userId) { | 
 |  |  |         //检测是否为浅库位 | 
 |  |  |         List<LocMast> locMasts = null; | 
 |  |  |         boolean sign=false; | 
 |  |  |         String th = ""; | 
 |  |  |         for (String locNoKong: param.getLocNos()){ | 
 |  |  |             int row = getRow(locNoKong); | 
 |  |  |             int bay = getBay(locNoKong); | 
 |  |  |             int lev = getLev(locNoKong); | 
 |  |  |             if (!(row==4 || row==5)){ | 
 |  |  |                 if (row>5){ | 
 |  |  |                     locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row) | 
 |  |  |                             .eq("bay1",bay).eq("lev1",lev)); | 
 |  |  |                     for (LocMast locMast1:locMasts){ | 
 |  |  |                         if (locMast1.getRow1()<row){ | 
 |  |  |                             if (!locMast1.getLocSts().equals("O")){ | 
 |  |  |                                 if (param.getLocNos().contains(locMast1.getLocNo())){ | 
 |  |  |                                     continue; | 
 |  |  |                                 } | 
 |  |  |                                 sign=true; | 
 |  |  |                                 th="库位号:"+locNoKong+" 浅库位有非空库位!"; | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }else { | 
 |  |  |                     locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row) | 
 |  |  |                             .eq("bay1",bay).eq("lev1",lev)); | 
 |  |  |                     for (LocMast locMast1:locMasts){ | 
 |  |  |                         if (locMast1.getRow1()>row){ | 
 |  |  |                             if (!locMast1.getLocSts().equals("O")){ | 
 |  |  |                                 if (param.getLocNos().contains(locMast1.getLocNo())){ | 
 |  |  |                                     continue; | 
 |  |  |                                 } | 
 |  |  |                                 sign=true; | 
 |  |  |                                 th="库位号:"+locNoKong+" 浅库位有非空库位!"; | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (sign){ | 
 |  |  |             throw new CoolException("出库失败;"+th); | 
 |  |  |         } | 
 |  |  |         if (Cools.isEmpty(param.getOutSite())) { | 
 |  |  |             throw new CoolException("站点不存在"); | 
 |  |  |         } |