| | |
| | | return Re.error("仓库编号不匹配"); |
| | | } |
| | | List<WaitPakin> waitPakins = null; |
| | | if (param.getFromPort().equals("1001")) { |
| | | |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarCode())); |
| | | |
| | | if(wrkMast != null && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){ |
| | | switch (wrkMast.getIoType()){ |
| | | case 103:param.setIoType(103);break;//拣料 |
| | | case 107:param.setIoType(107);break;//盘点 |
| | | } |
| | | }else{ |
| | | //全板入库 |
| | | param.setIoType(1); |
| | | } |
| | | if (param.getFromPort().equals("1001") && param.getIoType()!=103 && param.getIoType() != 107) { |
| | | |
| | | //有空板出库时禁止入库 |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", 1001).notIn("wrk_sts", 7)); |
| | |
| | | } |
| | | waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode())); |
| | | if (Cools.isEmpty(waitPakins)) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode()); |
| | | // WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode()); |
| | | if (wrkMast != null && wrkMast.getIoType() == 103) { |
| | | return Re.parse(CodeRes.PICK_600); |
| | | } |
| | |
| | | |
| | | StartupDto dto = null; |
| | | |
| | | //全板入库 |
| | | param.setIoType(1); |
| | | |
| | | switch (param.getIoType()) { |
| | | case 1://满托盘入库 |
| | | assert waitPakins != null; |
| | | dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, waitPakins); |
| | | break; |
| | | // case 10://空托盘入库 |
| | | // dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode()); |
| | | // break; |
| | | case 103:startupFullPutStore103(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, wrkMast);break; |
| | | case 107:startupFullPutStore107(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, wrkMast);break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | return dto; |
| | | } |
| | | |
| | | /** |
| | | * 盘点入库 |
| | | */ |
| | | @Transactional |
| | | public StartupDto startupFullPutStore107(Integer devpNo, String barcode, LocTypeDto locTypeDto, WrkMast wrkMast) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | WrkDetl wrkDetl = wrkDetlList.get(0); |
| | | findLocNoAttributeVo.setMatnr(wrkDetl.getMatnr()); |
| | | findLocNoAttributeVo.setBatch(wrkDetl.getBatch()); |
| | | // StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto); |
| | | StartupDto dto = commonService.getLocNoNew(1, devpNo, findLocNoAttributeVo, locTypeDto,barcode); |
| | | if (dto == null) { |
| | | throw new CoolException("没有检索到空库位"); |
| | | } |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | try{ |
| | | // 保存工作明细档历史档 |
| | | if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作明细档历史档失败"); |
| | | } |
| | | // 保存工作主档历史档 |
| | | if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作主档历史档失败"); |
| | | } |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast.setWrkSts(0L); // 工作状态: 2.设备上走 |
| | | wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站 |
| | | wrkMast.setStaNo(dto.getStaNo()); // 目标站 |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 = 出库时的源库位 |
| | | wrkMast.setSourceLocNo(""); // 源库位清空 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setMk("N");//是否完成上报wcs |
| | | // 操作人员数据 |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastMapper.updateById(wrkMast) == 0) { |
| | | throw new CoolException("更新工作档数据状态失败"); |
| | | } |
| | | // 更新明细档io_time (历史档关联使用) |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | // 更新源站点信息 |
| | | sourceStaNo.setWrkNo(wrkMast.getWrkNo()); |
| | | sourceStaNo.setModiTime(now); |
| | | if (!basDevpService.updateById(sourceStaNo)) { |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | | if (locMast.getLocSts().equals("O")) { |
| | | locMast.setLocSts("Q"); // S.入库预约 |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | return dto; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 盘点入库 |
| | | */ |
| | | @Transactional |
| | | public StartupDto startupFullPutStore103(Integer devpNo, String barcode, LocTypeDto locTypeDto, WrkMast wrkMast) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | WrkDetl wrkDetl = wrkDetlList.get(0); |
| | | findLocNoAttributeVo.setMatnr(wrkDetl.getMatnr()); |
| | | findLocNoAttributeVo.setBatch(wrkDetl.getBatch()); |
| | | // StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto); |
| | | StartupDto dto = commonService.getLocNoNew(1, devpNo, findLocNoAttributeVo, locTypeDto,barcode); |
| | | if (dto == null) { |
| | | throw new CoolException("没有检索到空库位"); |
| | | } |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | try{ |
| | | // 保存工作明细档历史档 |
| | | if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作明细档历史档失败"); |
| | | } |
| | | // 保存工作主档历史档 |
| | | if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作主档历史档失败"); |
| | | } |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast.setWrkSts(0L); // 工作状态: 2.设备上走 |
| | | wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站 |
| | | wrkMast.setStaNo(dto.getStaNo()); // 目标站 |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 = 出库时的源库位 |
| | | wrkMast.setSourceLocNo(""); // 源库位清空 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setMk("N");//是否完成上报wcs |
| | | // 操作人员数据 |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastMapper.updateById(wrkMast) == 0) { |
| | | throw new CoolException("更新工作档数据状态失败"); |
| | | } |
| | | // 更新明细档io_time (历史档关联使用) |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | // 更新源站点信息 |
| | | sourceStaNo.setWrkNo(wrkMast.getWrkNo()); |
| | | sourceStaNo.setModiTime(now); |
| | | if (!basDevpService.updateById(sourceStaNo)) { |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | | if (locMast.getLocSts().equals("O")) { |
| | | locMast.setLocSts("Q"); // S.入库预约 |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | return dto; |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto) { |
| | | // 源站点状态检测 |
| | |
| | | */ |
| | | |
| | | if (statusParam.getTaskStatus() == 0) { |
| | | //拣料和盘点再入库判断 |
| | | if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | String sourcecLocNo = wrkMast.getSourceLocNo(); |
| | | // 获取后两位的层数(高低库位数据) |
| | | String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2); |
| | | int layer = Integer.parseInt(layerStr); |
| | | // 判断层数 |
| | | Short locType1 = (short) ((layer == 1) ? 1 : 2); |
| | | LocTypeDto locTypeDto = new LocTypeDto(); |
| | | locTypeDto.setLocType1(locType1); |
| | | //注意一个板只能放同一种物料(检索新库位) |
| | | // StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr()); |
| | | StartupDto dto = commonService.getLocNoNew(1, 101, findLocNoAttributeVo,locTypeDto,null); |
| | | Date now = new Date(); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | // //拣料和盘点再入库判断 |
| | | // if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) { |
| | | // List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | // String sourcecLocNo = wrkMast.getSourceLocNo(); |
| | | // // 获取后两位的层数(高低库位数据) |
| | | // String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2); |
| | | // int layer = Integer.parseInt(layerStr); |
| | | // // 判断层数 |
| | | // Short locType1 = (short) ((layer == 1) ? 1 : 2); |
| | | // LocTypeDto locTypeDto = new LocTypeDto(); |
| | | // locTypeDto.setLocType1(locType1); |
| | | // //注意一个板只能放同一种物料(检索新库位) |
| | | //// StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2); |
| | | // FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | // findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr()); |
| | | // StartupDto dto = commonService.getLocNoNew(1, 101, findLocNoAttributeVo,locTypeDto,null); |
| | | // Date now = new Date(); |
| | | // wrkMast.setIoTime(now); |
| | | // wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | // wrkMast.setWrkSts(1L);//1.已接收 |
| | | // wrkMast.setSourceStaNo(101); // 源站 |
| | | // wrkMast.setStaNo(null); // 目标站 |
| | | // wrkMast.setLocNo(dto.getLocNo()); // 目标库位 |
| | | // wrkMast.setSourceLocNo(sourcecLocNo); |
| | | // wrkMast.setModiTime(now); |
| | | // wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | // |
| | | // // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | // LocMast locMast2 = locMastService.selectById(dto.getLocNo()); |
| | | // locMast2.setLocSts("Q"); |
| | | // locMast2.setModiTime(new Date()); |
| | | // if (!locMastService.updateById(locMast2)) { |
| | | // |
| | | // throw new CoolException("修改库位状态失败"); |
| | | // } |
| | | // } else { |
| | | wrkMast.setWrkSts(1L);//1.已接收 |
| | | wrkMast.setSourceStaNo(101); // 源站 |
| | | wrkMast.setStaNo(null); // 目标站 |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 |
| | | wrkMast.setSourceLocNo(sourcecLocNo); |
| | | wrkMast.setModiTime(now); |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | |
| | | // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | LocMast locMast2 = locMastService.selectById(dto.getLocNo()); |
| | | locMast2.setLocSts("Q"); |
| | | locMast2.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast2)) { |
| | | |
| | | throw new CoolException("修改库位状态失败"); |
| | | } |
| | | } else { |
| | | wrkMast.setWrkSts(1L);//1.已接收 |
| | | } |
| | | // } |
| | | } else if (statusParam.getTaskStatus() == 1) { |
| | | wrkMast.setWrkSts(2L);//2.任务开始 |
| | | } else if (statusParam.getTaskStatus() == 2) { |
| | |
| | | } |
| | | } |
| | | wrkMastService.updateById(wrkMast); |
| | | //已入库未确认历史档更新 |
| | | if(wrkMast.getWrkSts() == 14){ |
| | | // 保存工作主档历史档 |
| | | if (!wrkMastLogService.save(wrkMast.getWrkNo())) { |
| | | throw new CoolException("保存工作历史档失败"); |
| | | } |
| | | // 保存工作明细档历史档 |
| | | if (!wrkDetlLogService.save(wrkMast.getWrkNo())) { |
| | | throw new CoolException("保存工作明细历史档失败"); |
| | | } |
| | | } |
| | | // //已入库未确认历史档更新 |
| | | // if(wrkMast.getWrkSts() == 14 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){ |
| | | // // 保存工作主档历史档 |
| | | // if (!wrkMastLogService.save(wrkMast.getWrkNo())) { |
| | | // throw new CoolException("保存工作历史档失败"); |
| | | // } |
| | | // // 保存工作明细档历史档 |
| | | // if (!wrkDetlLogService.save(wrkMast.getWrkNo())) { |
| | | // throw new CoolException("保存工作明细历史档失败"); |
| | | // } |
| | | // } |
| | | return Re.ok(); |
| | | } |
| | | |