|  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.asrs.entity.BasWhs; | 
 |  |  | import com.zy.asrs.entity.LocDetl; | 
 |  |  | import com.zy.asrs.entity.LocMast; | 
 |  |  | import com.zy.asrs.entity.param.LocMastInitParam; | 
 |  |  | import com.zy.asrs.service.BasWhsService; | 
 |  |  | import com.zy.asrs.service.LocDetlService; | 
 |  |  | import com.zy.asrs.service.LocMastService; | 
 |  |  | import com.zy.asrs.utils.Utils; | 
 |  |  | import com.zy.common.entity.Parameter; | 
 |  |  | import com.zy.common.model.Shelves; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  | 
 |  |  |     private LocMastService locMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocDetlService locDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private BasWhsService basWhsService; | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locMast/init/pwd") | 
 |  |  |     public R locMastInitPwd(@RequestParam(required = false) String pwd) { | 
 |  |  | 
 |  |  |         return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locMast/crn/list/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R crnList(@RequestParam(defaultValue = "1")Integer curr, | 
 |  |  |                   @RequestParam(defaultValue = "10")Integer limit, | 
 |  |  |                   @RequestParam(required = false)String orderByField, | 
 |  |  |                   @RequestParam(required = false)String orderByType, | 
 |  |  |                   @RequestParam Map<String, Object> param){ | 
 |  |  |         excludeTrash(param); | 
 |  |  |         EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         wrapper.in("crn_no", 1,2); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ | 
 |  |  |         boolean sign = false; | 
 |  |  |         for (Map.Entry<String, Object> entry : map.entrySet()){ | 
 |  |  |             String val = String.valueOf(entry.getValue()); | 
 |  |  |             if (val.contains(RANGE_TIME_LINK)){ | 
 |  |  |                 String[] dates = val.split(RANGE_TIME_LINK); | 
 |  |  |                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); | 
 |  |  |                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); | 
 |  |  |             } else { | 
 |  |  |             } else if (entry.getKey().equals("loc_no")){ | 
 |  |  |                 wrapper.like(entry.getKey(), val); | 
 |  |  |             } else { | 
 |  |  |                 if (entry.getKey().equals("loc_type1")){ | 
 |  |  |                     sign=true; | 
 |  |  |                 } | 
 |  |  |                 wrapper.eq(entry.getKey(), val); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (sign){ | 
 |  |  |             wrapper.and().ne("loc_sts","Y"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     @ManagerAuth(memo = "初始化库位") | 
 |  |  | //    @Transactional | 
 |  |  |     public R init(LocMastInitParam param) { | 
 |  |  |         List<LocMast> list = new ArrayList<>(); | 
 |  |  |         for (int r=param.getStartRow(); r<=param.getEndRow(); r++){ | 
 |  |  |             for (int b=param.getStartBay(); b<=param.getEndBay(); b++) { | 
 |  |  |                 for (int l=param.getStartLev(); l<=param.getEndLev(); l++) { | 
 |  |  |                     // 获取库位号 | 
 |  |  |                     String locNo = String.format("%02d", r) + String.format("%03d", b) + String.format("%02d", l); | 
 |  |  |                     // 获取堆垛机号 | 
 |  |  |                     int crnNo = 0; | 
 |  |  |                     Shelves shelves = new Shelves(param.getEndRow() - param.getStartRow() + 1, param.getCrnAmount()); | 
 |  |  |                     for (List<Integer> node : shelves.nodes){ | 
 |  |  |                         if (node.contains(r)) { | 
 |  |  |                             crnNo = shelves.nodes.indexOf(node) + 1; | 
 |  |  |                             break; | 
 |  |  |         try{ | 
 |  |  |             List<LocMast> list = new ArrayList<>(); | 
 |  |  |             BasWhs basWhs = basWhsService.selectByIdentifying(param.getIdentifying()); | 
 |  |  |             if (Cools.isEmpty(basWhs)){ | 
 |  |  |                 return R.error("库型不存在!!!"); | 
 |  |  |             } | 
 |  |  |             for (int r=param.getStartRow(); r<=param.getEndRow(); r++){ | 
 |  |  |                 for (int b=param.getStartBay(); b<=param.getEndBay(); b++) { | 
 |  |  |                     for (int l=param.getStartLev(); l<=param.getEndLev(); l++) { | 
 |  |  |                         // 获取库位号 | 
 |  |  |                         String locNo = String.format("%02d", r) + String.format("%03d", b) + String.format("%02d", l); | 
 |  |  |                         // 获取堆垛机号 | 
 |  |  |                         int crnNo = 0; | 
 |  |  |                         try{ | 
 |  |  |                             Shelves shelves = new Shelves(param.getEndRow() - param.getStartRow() + 1, param.getCrnAmount(),param.getStartRow()); | 
 |  |  |                             for (List<Integer> node : shelves.nodes){ | 
 |  |  |  | 
 |  |  |                                 if (node.contains(r)) { | 
 |  |  |                                     if (!Cools.isEmpty(param.getStaCrn()) && param.getStaCrn() > 0){ | 
 |  |  |                                         crnNo = shelves.nodes.indexOf(node) + param.getStaCrn(); | 
 |  |  |                                     }else { | 
 |  |  |                                         crnNo = shelves.nodes.indexOf(node) + 1; | 
 |  |  |                                     } | 
 |  |  |  | 
 |  |  |                                     break; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         }catch (Exception e){ | 
 |  |  |                             throw new Exception("解析堆垛机号失败,请填写正确的数据!!!"); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         Date now =  new Date(); | 
 |  |  |                         LocMast locMast = new LocMast(); | 
 |  |  |                         locMast.setLocNo(locNo); | 
 |  |  |                         locMast.setLocSts("O"); | 
 |  |  |                         locMast.setRow1(r); // 排 | 
 |  |  |                         locMast.setBay1(b); // 列 | 
 |  |  |                         locMast.setLev1(l); // 层 | 
 |  |  |                         locMast.setGro1(r); // 组 | 
 |  |  |                         locMast.setCrnNo(crnNo); // 堆垛机 | 
 |  |  |                         locMast.setLocType1(!Cools.isEmpty(param.getLocType1()) ? param.getLocType1() : 1); | 
 |  |  |                         locMast.setLocType2(param.getLocType2()); | 
 |  |  |                         locMast.setLocType3(param.getLocType3()); | 
 |  |  |                         locMast.setAppeUser(getUserId()); | 
 |  |  |                         locMast.setAppeTime(now); | 
 |  |  |                         locMast.setModiUser(getUserId()); | 
 |  |  |                         locMast.setModiTime(now); | 
 |  |  |                         locMast.setWhsType(basWhs.getId()); | 
 |  |  |                         list.add(locMast); | 
 |  |  |                     } | 
 |  |  |                     Date now =  new Date(); | 
 |  |  |                     LocMast locMast = new LocMast(); | 
 |  |  |                     locMast.setLocNo(locNo); | 
 |  |  |                     locMast.setLocSts("O"); | 
 |  |  |                     locMast.setRow1(r); // 排 | 
 |  |  |                     locMast.setBay1(b); // 列 | 
 |  |  |                     locMast.setLev1(l); // 层 | 
 |  |  |                     locMast.setCrnNo(crnNo); // 堆垛机 | 
 |  |  |                     locMast.setLocType1(!Cools.isEmpty(param.getLocType1()) ? param.getLocType1() : 1); | 
 |  |  |                     locMast.setLocType2(param.getLocType2()); | 
 |  |  |                     locMast.setLocType3(param.getLocType3()); | 
 |  |  |                     locMast.setAppeUser(getUserId()); | 
 |  |  |                     locMast.setAppeTime(now); | 
 |  |  |                     locMast.setModiUser(getUserId()); | 
 |  |  |                     locMast.setModiTime(now); | 
 |  |  |                     list.add(locMast); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             if (!Cools.isEmpty(param.getEnable()) && param.getEnable() == 1){ | 
 |  |  |                 locMastService.delete(new EntityWrapper<>()); | 
 |  |  |             } | 
 |  |  |             locMastService.insertBatch(list); | 
 |  |  |             return R.ok("初始化成功"); | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             return R.error("初始化失败===>"+e.getMessage()); | 
 |  |  |         } | 
 |  |  | //        locMastService.delete(new EntityWrapper<>()); | 
 |  |  |         locDetlService.delete(new EntityWrapper<>()); | 
 |  |  |         locMastService.insertBatch(list); | 
 |  |  |         return R.ok("初始化成功"); | 
 |  |  |     } | 
 |  |  | } |