| | |
| | | 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; |
| | |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private BasWhsService basWhsService; |
| | | |
| | | @RequestMapping(value = "/locMast/init/pwd") |
| | | public R locMastInitPwd(@RequestParam(required = false) String pwd) { |
| | |
| | | excludeTrash(param); |
| | | EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); |
| | | convert(param, wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | 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)); |
| | | } |
| | |
| | | @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("初始化成功"); |
| | | } |
| | | |
| | | @RequestMapping(value = "/locMast/convert/size/auth") |
| | | @ManagerAuth(memo = "大小库位转换") |
| | | @Transactional |
| | | public R convertSize(@RequestParam String param) { |
| | | List<LocMast> list = JSONArray.parseArray(param, LocMast.class); |
| | | if (Cools.isEmpty(list)){ |
| | | return R.error(); |
| | | } |
| | | for (LocMast entity : list){ |
| | | if (!entity.getCrnNo().equals(1) && !entity.getCrnNo().equals(4)){ |
| | | return R.error("请选择1号、4号堆垛机的货位!!!不符合条件库位:"+entity.getLocNo()); |
| | | } |
| | | if (!entity.getLocSts().equals("O") && !entity.getLocSts().equals("Y")){ |
| | | return R.error("请选择空闲、被合并的货位!!!不符合条件库位:"+entity.getLocNo()); |
| | | } |
| | | } |
| | | List<String> innermostSideLoc = Utils.getInnermostSideLoc(list); |
| | | StringBuilder msg=new StringBuilder(); |
| | | for (String locNo : innermostSideLoc){ |
| | | String innermostSideLocLBR = Utils.getInnermostSideLocLBR(locNo); |
| | | LocMast locMast1 = locMastService.selectById(innermostSideLocLBR);//浅 |
| | | if (Cools.isEmpty(locMast1)){ |
| | | msg.append("请选择浅库位存在的货位!!!不符合条件库位:").append(innermostSideLocLBR).append("/n"); |
| | | continue; |
| | | } |
| | | if (!locMast1.getLocSts().equals("O")){ |
| | | msg.append("请选择浅库位空闲的货位!!!不符合条件库位:").append(locMast1.getLocNo()).append("/n"); |
| | | continue; |
| | | } |
| | | LocMast locMast = locMastService.selectById(locNo);//深 |
| | | if (Cools.isEmpty(locMast)){ |
| | | msg.append("请选择深库位存在的货位!!!不符合条件库位:").append(locNo).append("/n"); |
| | | continue; |
| | | } |
| | | if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("O")){ |
| | | locMast1.setLocType1((short)2); |
| | | locMast.setLocType1((short)2); |
| | | locMast.setLocSts("Y"); |
| | | }else if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("Y")){ |
| | | locMast1.setLocType1((short)1); |
| | | locMast.setLocType1((short)1); |
| | | locMast.setLocSts("O"); |
| | | }else { |
| | | msg.append("请选择深库位库位空闲、被合并的货位!!!不符合条件库位:").append(locMast.getLocNo()).append("/n"); |
| | | continue; |
| | | } |
| | | locMastService.updateById(locMast1); |
| | | locMastService.updateById(locMast); |
| | | } |
| | | return R.ok(msg); |
| | | } |
| | | } |