From 3c52f39678034ce21c1158a01b4885e3afde4443 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 04 一月 2025 17:08:00 +0800 Subject: [PATCH] #平库入库功能 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java | 59 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 39 insertions(+), 20 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java index e71501d..5a132a0 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java @@ -108,6 +108,11 @@ throw new CoolException("鏄庣粏涓嶅瓨鍦�"); } + OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId()); + if (orderDetl == null) { + throw new CoolException("鏄庣粏涓嶅瓨鍦�"); + } + TaskDetl taskDetl = new TaskDetl(); taskDetl.sync(locDetl); taskDetl.setTaskId(task.getId()); @@ -778,7 +783,7 @@ } - @Transactional + @Transactional(rollbackFor = Exception.class) public void orderOutMergeWave(OrderOutMergeParamDto dto) { if(dto == null){ throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); @@ -788,31 +793,36 @@ throw new CoolException("鏈敓鎴愭尝娆�"); } + Wave wave = waveService.getById(dto.getWaveId()); + if (Objects.isNull(wave)) { + throw new CoolException("娉㈡涓嶅瓨鍦�"); + } + List<OrderOutMergeParam> params = dto.getList(); if (params.isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); } - Long waveId = dto.getWaveId(); + + +// Long waveId = dto.getWaveId(); +// String waveNo = dto.getw List<Long> filterParamsList = new ArrayList<>(); List<OrderOutMergeParam> filterParams = new ArrayList<>(); - for (OrderOutMergeParam param : params) { - if (param.getLocId() == null) { - continue; - } - if(!filterParamsList.contains(param.getLocId())){ - filterParamsList.add(param.getLocId()); - filterParams.add(param); + params.forEach(action -> { + if (action.getLocId() != null) { + filterParamsList.add(action.getLocId()); + filterParams.add(action); } - } + }); HashMap<String, Double> stockMap = new HashMap<>(); for (OrderOutMergeParam param : filterParams) { String matUniqueKey = Utils.getMatUniqueKey(param.getMatnr(), param.getBatch(), param.getFieldParams()); - WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId)); + WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, wave.getId())); if(waveDetl == null){ throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦�"); } @@ -910,7 +920,8 @@ taskDetl.setTaskNo(task.getTaskNo()); taskDetl.setAnfme(merge.getAnfme()); taskDetl.setStock(locDetl.getAnfme()); - taskDetl.setWaveId(waveId); + taskDetl.setWaveId(wave.getId()); + taskDetl.setWaveNo(wave.getWaveNo()); taskDetl.setOrderId(null); taskDetl.setOrderNo(null); if (!taskDetlService.save(taskDetl)) { @@ -929,8 +940,11 @@ } } + + //TODO 纭鍚庯紝闇�灏嗘敞閲婃墦寮� String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField()); - WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId)); +// WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId)); + WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()), false); if (waveDetl == null) { throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦�"); } @@ -939,8 +953,14 @@ if (!waveDetlService.updateById(waveDetl)) { throw new CoolException("娉㈡鏁版嵁鏇存柊澶辫触"); } - } + + //鍑哄簱搴撳瓨鏇存柊閫昏緫 +// List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds(); +// List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds)); +// orderDetls.forEach(orderDetl -> { +// orderUtils.updateWorkQty(orderDetl.getId(), orderDetl.getAnfme()); +// }); //搴撲綅F => R loc.setLocStsId(LocStsType.R.val()); @@ -949,13 +969,12 @@ if(!locUpdate){ throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); } - } - Wave wave = waveService.getById(waveId); - if (wave == null) { - throw new CoolException("娉㈡涓嶅瓨鍦�"); - } +// Wave wave = waveService.getById(dto.getWaveId()); +// if (wave == null) { +// throw new CoolException("娉㈡涓嶅瓨鍦�"); +// } wave.setWaveStatus(WaveStatusType.GENERATE.id); wave.setUpdateTime(new Date()); @@ -964,7 +983,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) public void generateWave(GenerateWaveParam param) { if (param == null) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); -- Gitblit v1.9.1