| | |
| | | @ResponseBody |
| | | public synchronized R getLocNo(@RequestBody SearchLocParam param) { |
| | | log.info("收到WCS入库接口请求====>>入参:{}", param); |
| | | // if (Cools.isEmpty(param.getIoType())) { |
| | | // return R.error("入出库类型不能为空"); |
| | | // } |
| | | if (Cools.isEmpty(param.getIoType())) { |
| | | return R.error("入出库类型不能为空"); |
| | | } |
| | | if (Cools.isEmpty(param.getSourceStaNo())) { |
| | | return R.error("源站编号不能为空"); |
| | | } |
| | | if (param.getRow().length == 0) { |
| | | return R.error("WCS上报无可用设备"); |
| | | } |
| | | // //wcs调用此接口向组托表插入一条数据模拟组托 |
| | | // WaitPakin waitPakin = new WaitPakin(); |
| | | // waitPakin.setZpallet(param.getBarcode()); |
| | | // waitPakin.setBatch("20260305002"); |
| | | // waitPakin.setAnfme(100.0D); |
| | | // waitPakin.setMatnr("YJ2026030509353203"); |
| | | // waitPakin.setMaktx("上拉杆_左前右后毛坯"); |
| | | // waitPakin.setSpecs("50001LR-71"); |
| | | // waitPakin.setModel("skv"); |
| | | // waitPakinService.insert(waitPakin); |
| | | // |
| | | // WaitPakin waitPakin2 = new WaitPakin(); |
| | | // waitPakin2.setZpallet(param.getBarcode()); |
| | | // waitPakin2.setBatch("20260305002"); |
| | | // waitPakin2.setAnfme(100.0D); |
| | | // waitPakin2.setMatnr("YJ2026030509494873"); |
| | | // waitPakin2.setMaktx("螺杆先"); |
| | | // waitPakin2.setSpecs("50001LR-71"); |
| | | // waitPakin2.setModel("skv"); |
| | | // waitPakinService.insert(waitPakin2); |
| | | // if (param.getRow().length == 0) { |
| | | // return R.error("WCS上报无可用设备"); |
| | | // } |
| | | |
| | | List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | if (param.getIoType() == 1) { |
| | | if (Cools.isEmpty(param.getBarcode())) { |
| | | return R.error("条码不能为空"); |
| | | } |
| | | WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode()); |
| | | if (wrkMast1 != null) { |
| | | Integer ioType = wrkMast1.getIoType(); |
| | | if ((ioType == 103 || ioType == 107) && wrkMast1.getWrkSts() == 14) { |
| | | // 转换工作档 |
| | | if (!wrkMastLogService.save(wrkMast1.getWrkNo())) { |
| | | throw new CoolException("保存工作主档历史档失败"); |
| | | } |
| | | Date now = new Date(); |
| | | // 更新工作档数据状态 |
| | | wrkMast1.setIoType(wrkMast1.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast1.setWrkSts(2L); // 工作状态: 2.设备上走 |
| | | wrkMast1.setSourceStaNo(String.valueOf(param.getSourceStaNo())); // 源站 |
| | | wrkMast1.setStaNo("0"); // 目标站 |
| | | wrkMast1.setLocNo(wrkMast1.getSourceLocNo()); |
| | | wrkMast1.setSourceLocNo(""); // 源库位清空 |
| | | wrkMast1.setModiTime(now); |
| | | if (!wrkMastService.updateById(wrkMast1)) { |
| | | throw new CoolException("更新工作档数据状态失败"); |
| | | } |
| | | // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | LocMast locMast = locMastService.selectById(wrkMast1.getLocNo()); |
| | | locMast.setLocSts("Q"); |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("修改库位状态失败"); |
| | | } |
| | | } |
| | | StartupDto startupDto = new StartupDto(); |
| | | startupDto.setTaskNo(wrkMast1.getWrkNo()); |
| | | startupDto.setSourceStaNo(Integer.valueOf(wrkMast1.getSourceStaNo())); |
| | | startupDto.setTaskPri(wrkMast1.getIoPri()); |
| | | startupDto.setCrnNo(wrkMast1.getCrnNo()); |
| | | startupDto.setLocNo(Utils.locToLocNo(wrkMast1.getLocNo())); |
| | | return R.ok().add(startupDto); |
| | | } |
| | | // WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode()); |
| | | // if (wrkMast1 != null) { |
| | | // Integer ioType = wrkMast1.getIoType(); |
| | | // if ((ioType == 103 || ioType == 107) && wrkMast1.getWrkSts() == 14) { |
| | | // // 转换工作档 |
| | | // if (!wrkMastLogService.save(wrkMast1.getWrkNo())) { |
| | | // throw new CoolException("保存工作主档历史档失败"); |
| | | // } |
| | | // Date now = new Date(); |
| | | // // 更新工作档数据状态 |
| | | // wrkMast1.setIoType(wrkMast1.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | // wrkMast1.setWrkSts(2L); // 工作状态: 2.设备上走 |
| | | // wrkMast1.setSourceStaNo(String.valueOf(param.getSourceStaNo())); // 源站 |
| | | // wrkMast1.setStaNo("0"); // 目标站 |
| | | // wrkMast1.setLocNo(wrkMast1.getSourceLocNo()); |
| | | // wrkMast1.setSourceLocNo(""); // 源库位清空 |
| | | // wrkMast1.setModiTime(now); |
| | | // if (!wrkMastService.updateById(wrkMast1)) { |
| | | // throw new CoolException("更新工作档数据状态失败"); |
| | | // } |
| | | // // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | // LocMast locMast = locMastService.selectById(wrkMast1.getLocNo()); |
| | | // locMast.setLocSts("Q"); |
| | | // locMast.setModiTime(now); |
| | | // if (!locMastService.updateById(locMast)) { |
| | | // throw new CoolException("修改库位状态失败"); |
| | | // } |
| | | // } |
| | | // StartupDto startupDto = new StartupDto(); |
| | | // startupDto.setTaskNo(wrkMast1.getWrkNo()); |
| | | // startupDto.setSourceStaNo(Integer.valueOf(wrkMast1.getSourceStaNo())); |
| | | // startupDto.setTaskPri(wrkMast1.getIoPri()); |
| | | // startupDto.setCrnNo(wrkMast1.getCrnNo()); |
| | | // startupDto.setLocNo(Utils.locToLocNo(wrkMast1.getLocNo())); |
| | | // return R.ok().add(startupDto); |
| | | // } |
| | | if (Cools.isEmpty(waitPakins)) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); |
| | | if (wrkMast != null && wrkMast.getIoType() == 103) { |
| | |
| | | } |
| | | |
| | | // 源站点状态检测 |
| | | // BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true); |
| | | // sourceStaNo.setLocType1(param.getLocType1()); |
| | | LocTypeDto locTypeDto = new LocTypeDto(); |
| | | locTypeDto.setLocType1(param.getLocType1()); |
| | | if(!waitPakins.isEmpty()) { // 判断是否是空托盘 |
| | | if (waitPakins.get(0).getMatnr().equals("1") ) { |
| | | param.setIoType(10); |
| | | } |
| | | } |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true); |
| | | sourceStaNo.setLocType1(param.getLocType1()); |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | // locTypeDto.setLocType1(param.getLocType1()); |
| | | // if(!waitPakins.isEmpty()) { // 判断是否是空托盘 |
| | | // if (waitPakins.get(0).getMatnr().equals("1") ) { |
| | | // param.setIoType(10); |
| | | // } |
| | | // } |
| | | |
| | | StartupDto dto = null; |
| | | switch (param.getIoType()) { |
| | |
| | | Date now = new Date(); |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PICK.type); |
| | | dto.setTaskNo(workNo); |
| | | dto.setWorkNo(workNo); |
| | | |
| | | // 保存工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | | wrkMast.setWrkNo(dto.getTaskNo()); |
| | | wrkMast.setWrkNo(dto.getWorkNo()); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setWrkSts(1L); |
| | | wrkMast.setIoPri(13D); |
| | |
| | | @Transactional |
| | | public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins, int[] row) { |
| | | // 源站点状态检测 |
| | | // BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | // 检索库位 |
| | | // FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0)); |
| | | // StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto); |
| | | StartupDto dto = null; |
| | | // 根据库位排映射堆垛机 |
| | | for(int i = 0; i < row.length/4 ; i ++) { |
| | | ArrayList<Integer> rows = new ArrayList<>(); |
| | | rows.add(row[i * 4]); |
| | | rows.add(row[i * 4 + 1]); |
| | | rows.add(row[i * 4 + 2]); |
| | | rows.add(row[i * 4 + 3]); |
| | | dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows); |
| | | if (dto != null) { |
| | | break; |
| | | } |
| | | } |
| | | // StartupDto dto = null; |
| | | // // 根据库位排映射堆垛机 |
| | | // for(int i = 0; i < row.length/4 ; i ++) { |
| | | // ArrayList<Integer> rows = new ArrayList<>(); |
| | | // rows.add(row[i * 4]); |
| | | // rows.add(row[i * 4 + 1]); |
| | | // rows.add(row[i * 4 + 2]); |
| | | // rows.add(row[i * 4 + 3]); |
| | | // dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows); |
| | | // if (dto != null) { |
| | | // break; |
| | | // } |
| | | // } |
| | | StartupDto dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),null);; |
| | | if (dto == null) { |
| | | throw new CoolException("没有匹配到库位,检查可用库位/堆垛机报警"); |
| | | } |
| | | int workNo = dto.getTaskNo(); |
| | | int workNo = dto.getWorkNo(); |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | |
| | | throw new CoolException("更新通知档失败"); |
| | | } |
| | | // 更新源站点信息 |
| | | // sourceStaNo.setWrkNo(workNo); |
| | | // sourceStaNo.setModiTime(now); |
| | | // if (!basDevpService.updateById(sourceStaNo)) { |
| | | // throw new CoolException("更新源站失败"); |
| | | // } |
| | | sourceStaNo.setWrkNo(workNo); |
| | | sourceStaNo.setModiTime(now); |
| | | if (!basDevpService.updateById(sourceStaNo)) { |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | | if (locMast.getLocSts().equals("O")) { |
| | |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | dto.setLocNo(Utils.locToLocNo(dto.getLocNo())); |
| | | // dto.setLocNo(Utils.locToLocNo(dto.getLocNo())); |
| | | return dto; |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode, int[] row) { |
| | | // 源站点状态检测 |
| | | // BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | // 检索库位 |
| | | // FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | |
| | | // StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto); |
| | | StartupDto dto = null; |
| | | // 根据库位排映射堆垛机 |
| | | for(int i = 0; i < row.length/4 ; i ++) { |
| | | ArrayList<Integer> rows = new ArrayList<>(); |
| | | rows.add(row[i * 4]); |
| | | rows.add(row[i * 4 + 1]); |
| | | rows.add(row[i * 4 + 2]); |
| | | rows.add(row[i * 4 + 3]); |
| | | dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows); |
| | | if (dto != null) { |
| | | break; |
| | | } |
| | | } |
| | | // StartupDto dto = null; |
| | | // // 根据库位排映射堆垛机 |
| | | // for(int i = 0; i < row.length/4 ; i ++) { |
| | | // ArrayList<Integer> rows = new ArrayList<>(); |
| | | // rows.add(row[i * 4]); |
| | | // rows.add(row[i * 4 + 1]); |
| | | // rows.add(row[i * 4 + 2]); |
| | | // rows.add(row[i * 4 + 3]); |
| | | // dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows); |
| | | // if (dto != null) { |
| | | // break; |
| | | // } |
| | | // } |
| | | StartupDto dto = commonService.getLocNoNew(10, devpNo, Integer.valueOf(locTypeDto.getLocType1()),null);; |
| | | if (dto == null) { |
| | | throw new CoolException("没有匹配到库位,检查可用库位/堆垛机报警"); |
| | | } |
| | | int workNo = dto.getTaskNo(); |
| | | int workNo = dto.getWorkNo(); |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | |
| | | if (!res) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | // 更新入库通知档 ioStatus ===>> Y |
| | | Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() |
| | | .eq("zpallet", barcode); |
| | | WaitPakin setParam = new WaitPakin(); |
| | | setParam.setLocNo(dto.getLocNo()); |
| | | setParam.setIoStatus("Y"); |
| | | setParam.setModiTime(now); |
| | | if (!waitPakinService.update(setParam, wrapper)) { |
| | | throw new CoolException("更新通知档失败"); |
| | | // 更新源站点信息 |
| | | sourceStaNo.setWrkNo(workNo); |
| | | sourceStaNo.setModiTime(new Date()); |
| | | if (!basDevpService.updateById(sourceStaNo)) { |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | dto.setLocNo(Utils.locToLocNo(dto.getLocNo())); |
| | | // dto.setLocNo(Utils.locToLocNo(dto.getLocNo())); |
| | | return dto; |
| | | } |
| | | |