src/main/java/com/zy/asrs/controller/OutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WorkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/order/out.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OutController.java
@@ -112,11 +112,12 @@ @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "订单出库") public R pakout(@RequestBody List<LocDto> locDtos) { public synchronized R pakout(@RequestBody List<LocDto> locDtos) { if (Cools.isEmpty(locDtos)) { return R.parse(BaseRes.PARAM); } List<TaskDto> taskDtos = new ArrayList<>(); // 根据 (库位 & 出库站) 分组; 理想状态:一组为一次出库任务 for (LocDto locDto : locDtos) { if (locDto.isLack()) { continue; } TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto); @@ -130,10 +131,8 @@ } // ----------------------------------------------------------------------------------------------- for (TaskDto taskDto : taskDtos) { // 目标站点状态检测 BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); // workService.stockOut(); workService.stockOut(staNo, taskDto, getUserId()); } return R.ok(); } src/main/java/com/zy/asrs/service/WorkService.java
@@ -32,7 +32,7 @@ */ void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, Integer ioType, Long userId); void stockOut(BasDevp staNo, List<LocDto> locDtos, Long userId); void stockOut(BasDevp staNo, TaskDto taskDto, Long userId); /** * 空板入库 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -262,11 +262,16 @@ @Override @Transactional public void stockOut(BasDevp staNo, List<LocDto> locDtos, Long userId) { public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) { Date now = new Date(); List<LocDto> locDtos = taskDto.getLocDtos(); for (LocDto locDto : locDtos) { if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) { throw new CoolException("订单出库异常,请联系管理员"); } } // 获取库位 LocMast locMast = locMastService.selectById(locDto.getLocNo()); LocMast locMast = locMastService.selectById(taskDto.getLocNo()); // 获取路径 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", ioType) @@ -288,7 +293,7 @@ wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 wrkMast.setSourceLocNo(locDto.getLocNo()); // 源库位 wrkMast.setSourceLocNo(taskDto.getLocNo()); // 源库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 @@ -299,10 +304,10 @@ wrkMast.setModiUser(userId); wrkMast.setModiTime(now); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("保存工作档失败,出库库位号:"+locDto.getLocNo()); throw new CoolException("保存工作档失败,出库库位号:"+taskDto.getLocNo()); } // 生成工作档明细 for (LocDetlDto detlDto : dto.getLocDetlDtos()) { for (LocDto locDto : taskDto.getLocDtos()) { // 出库时,数量为0的直接忽略 if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} WrkDetl wrkDetl = new WrkDetl(); @@ -320,17 +325,16 @@ } } // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 locMast = locMastService.selectById(locDto.getLocNo()); locMast = locMastService.selectById(taskDto.getLocNo()); if (locMast.getLocSts().equals("F")) { locMast.setLocSts(ioType==101?"R":"P"); locMast.setModiUser(userId); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("预约库位状态失败,库位号:"+locDto.getLocNo()); throw new CoolException("预约库位状态失败,库位号:"+taskDto.getLocNo()); } } else { throw new CoolException(locDto.getLocNo() + "库位不是在库状态"); } throw new CoolException(taskDto.getLocNo() + "库位不是在库状态"); } } src/main/webapp/static/js/order/out.js
@@ -198,7 +198,8 @@ } function pakout(tableCache, layerIndex) { let loadIndex = layer.load(2); // let loadIndex = layer.load(2); notice.msg('正在生成出库任务......', {icon: 4, position: "top"}); $.ajax({ url: baseUrl + "/out/pakout/auth", headers: {'token': localStorage.getItem('token')}, @@ -206,7 +207,7 @@ data: JSON.stringify(tableCache), method: 'POST', success: function (res) { layer.close(loadIndex); notice.destroy(); if (res.code === 200) { layer.close(layerIndex); layer.msg(res.msg, {icon: 1});