| | |
| | | return R.error("源站编号不能为空"); |
| | | } |
| | | List<WaitPakin> waitPakins = null; |
| | | if (param.getIoType() == 1) { |
| | | WrkMast wrkMastV2 = null; |
| | | if (param.getIoType() == 1 && !param.getSourceStaNo().equals(1070)) { |
| | | //处理托盘码 |
| | | //3S19000677895,M22003772,3 ,KP, 0A2030 ,0A2030202306050023 |
| | | //3S箱码号 ,端子物料号 ,数量,单位,供应商编号,供应商批次号 |
| | |
| | | String threeCode = param.getBarcode(); |
| | | param.setBarcode(barcode); |
| | | //实际称重数量 |
| | | Double m = param.getWeight() -2.45; |
| | | Double m = param.getWeight() -2.4; |
| | | |
| | | |
| | | WrkMast wrkMast1 = wrkMastService.selectByBarcode(barcode); |
| | |
| | | return R.error("物料已到达上限禁止入库"); |
| | | } |
| | | //Double val = Math.round((m - matnr.getSafeQty()) * 10000) / 10000.0; |
| | | Config config = configService.selectConfigByCode("SimulationInbound"); |
| | | if (config != null && config.getValue().equals("Y")) { |
| | | WaitPakin waitPakin1 = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | if (Cools.isEmpty(waitPakin1)) { |
| | | WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("io_status", "N")); |
| | | if (waitPakin != null) { |
| | | waitPakinService.updateForSet("zpallet = '" + param.getBarcode() + "'", new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getZpallet())); |
| | | } |
| | | } |
| | | } |
| | | // Config config = configService.selectConfigByCode("SimulationInbound"); |
| | | // if (config != null && config.getValue().equals("Y")) { |
| | | // WaitPakin waitPakin1 = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | // if (Cools.isEmpty(waitPakin1)) { |
| | | // WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("io_status", "N")); |
| | | // if (waitPakin != null) { |
| | | // waitPakinService.updateForSet("zpallet = '" + param.getBarcode() + "'", new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getZpallet())); |
| | | // } |
| | | // } |
| | | // } |
| | | waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | if (Cools.isEmpty(waitPakins)) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); |
| | |
| | | if (countLoc > 0 || countWrk > 0) { |
| | | return R.error(CodeRes.EXIST_500); |
| | | } |
| | | }else if(param.getIoType() != 10){ |
| | | //barcode放着wms工作号用于检索任务档 |
| | | wrkMastV2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",param.getBarcode())); |
| | | if (wrkMastV2 == null) { |
| | | return R.error("1070站点wms工作号为空"); |
| | | } |
| | | if(wrkMastV2.getIsSuplus().equals(0)){//若为空板回库,进入空板入库流程 |
| | | param.setIoType(10); |
| | | param.setBarcode(wrkMastV2.getBarcode()); |
| | | }else{ //若为余料 |
| | | param.setIoType(1070); |
| | | } |
| | | } |
| | | if (Cools.isEmpty(param.getLocType1())){ |
| | | return R.error("高低检测信号不能为空"); |
| | |
| | | break; |
| | | case 10://空托盘入库 |
| | | dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode()); |
| | | break; |
| | | case 1070: |
| | | dto = startupFullPutStoreV2(param.getSourceStaNo(), wrkMastV2, locTypeDto);//1070 |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | return dto; |
| | | } |
| | | |
| | | |
| | | @Transactional |
| | | public StartupDto startupFullPutStoreV2(Integer devpNo, WrkMast wrkMast, LocTypeDto locTypeDto) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | StartupDto dto = commonService.getLocNoV2( 1, devpNo,wrkMast, locTypeDto); |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | if (Cools.isEmpty(dto)) { |
| | | throw new CoolException("没有找到库位"); |
| | | } |
| | | if (Cools.isEmpty(wrkDetls)) { |
| | | throw new CoolException("工作明细不存在"); |
| | | } |
| | | int workNo = dto.getWorkNo(); |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | | wrkMast.setWrkNo(workNo); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setWrkSts(2L); // 工作状态:生成入库ID |
| | | wrkMast.setIoType(1); // 入出库状态:1.入库 |
| | | wrkMast.setIoPri(13D); // 优先级 |
| | | wrkMast.setCrnNo(dto.getCrnNo()); |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo() + "");//1070 |
| | | wrkMast.setStaNo(dto.getStaNo() + ""); |
| | | wrkMast.setLocNo(dto.getLocNo()); |
| | | wrkMast.setBarcode(wrkDetls.get(0).getZpallet()); // 托盘码 |
| | | wrkMast.setFullPlt("Y"); // 满板:Y |
| | | wrkMast.setOnlineYn("Y"); |
| | | wrkMast.setPicking("N"); // 拣料 |
| | | wrkMast.setExitMk("N"); // 退出 |
| | | wrkMast.setEmptyMk("N"); // 空板 |
| | | wrkMast.setLinkMis("Y"); |
| | | wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 |
| | | // 操作人员数据 |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiTime(now); |
| | | boolean res = wrkMastService.insert(wrkMast); |
| | | if (!res) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | for (WrkDetl srcDetl : wrkDetls) { |
| | | WrkDetl newDetl = new WrkDetl(); |
| | | newDetl.sync(srcDetl); |
| | | newDetl.setWrkNo(wrkMast.getWrkNo()); |
| | | newDetl.setIoTime(wrkMast.getIoTime()); |
| | | newDetl.setAppeTime(now); |
| | | newDetl.setModiTime(now); |
| | | if (!wrkDetlService.insert(newDetl)) { |
| | | 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")){ |
| | | locMast.setLocSts("S"); // S.入库预约 |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)){ |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException(dto.getLocNo()+"目标库位已被占用"); |
| | | } |
| | | dto.setBarcode(wrkMast.getBarcode()); |
| | | dto.setTaskNo(wrkMast.getWrkNo()); |
| | | dto.setTaskPri(wrkMast.getIoPri().intValue()); |
| | | return dto; |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) { |
| | | // 源站点状态检测 |
| | |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); |
| | | |
| | | StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto); |
| | | if(Cools.isEmpty(dto)){ |
| | | throw new CoolException("未检索到库位"); |
| | | } |
| | | int workNo = dto.getWorkNo(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |