From 4fb06a58ed5df46f29af1e9fa65cfd40335263ad Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 18 一月 2025 17:06:18 +0800 Subject: [PATCH] # 6. 大屏添加作业类型 (全盘,还是分拣 IOType) 10.平库出库时,当前平库ID是写死在Sql里,需修改 11.平库出库没有判断是否预约出库,且生成拣货单时没有锁定库存,需确认是否考虑回库问题 26. 已拣过货的任务明细,可以再次拣货,拣货明细需添加一个拣货状态 47. 确认发货前,需判断是否已绑定至集货区 48. CTU出库后,库位103不再删除原有库位信息 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 65 ++++++++++++++++---------------- 1 files changed, 32 insertions(+), 33 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java index 953f7f6..fb292e4 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java @@ -9,7 +9,6 @@ import com.zy.asrs.wms.asrs.entity.enums.LocStsType; import com.zy.asrs.wms.asrs.entity.enums.TaskStsType; import com.zy.asrs.wms.asrs.service.*; -import io.jsonwebtoken.lang.Collections; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -17,11 +16,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; -import java.util.Collection; import java.util.Date; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; @Slf4j @Component @@ -113,11 +109,12 @@ /** + * // fixme 鑸嶅純 * 1. 瀹氭椂鎷夊彇闇�瑕佹墽琛屽洖搴撲换鍔″垪琛ㄦ暟鎹紝 * 2. 鍒犻櫎鍘熷搴撲綅鏄庣粏锛屽師濮嬪簱浣嶇姸鎬佺疆鎴怬.绌哄簱 * 3. */ - @Scheduled(cron = "0/3 * * * * ? ") +// @Scheduled(cron = "0/3 * * * * ? ") @Transactional(rollbackFor = Exception.class) public void rollbackStock() { //鑾峰彇闇�瑕佹墽琛屽洖搴撶殑浠诲姟锛屾洿鏂板簱瀛樹俊鎭� @@ -328,7 +325,6 @@ //鎷f枡鍐嶅叆搴� private void executeTask53(Task task) { Long hostId = task.getHostId(); - //fixme 灏嗕换鍔″綋鍓� Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); if (loc == null) { throw new CoolException("搴撲綅涓嶅瓨鍦�"); @@ -351,37 +347,35 @@ throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); } - //娣诲姞搴撳瓨鏄庣粏 + //淇敼搴撳瓨鏄庣粏 for (TaskDetl taskDetl : taskDetls) { double anfme = taskDetl.getStock() - taskDetl.getAnfme(); if (anfme <= 0) { - continue; - } + LocDetl locdetl = locDetlService.getOne(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocId, loc.getId()) + .eq(LocDetl::getBatch, taskDetl.getBatch()) + .eq(LocDetl::getMatId, taskDetl.getMatId())); - LocDetl locDetl = new LocDetl(); - locDetl.setLocId(loc.getId()); - locDetl.setLocNo(loc.getLocNo()); - locDetl.setMatId(taskDetl.getMatId()); - locDetl.setMatnr(taskDetl.getMat$().getMatnr()); - locDetl.setOrderNo(taskDetl.getOrderNo()); - locDetl.setBatch(taskDetl.getBatch()); - locDetl.setAnfme(anfme); - locDetl.setHostId(hostId); - if (!locDetlService.save(locDetl)) { - throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); - } + List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locdetl.getId()).eq(LocDetlField::getHostId, hostId)); + if (!detlFields.isEmpty()) { + if (!locDetlFieldService.removeBatchByIds(detlFields)) { + throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } - //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 - List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); - for (TaskDetlField detlField : detlFields) { - LocDetlField locDetlField = new LocDetlField(); - locDetlField.setDetlId(locDetl.getId()); - locDetlField.setFieldId(detlField.getFieldId()); - locDetlField.setName(detlField.getName()); - locDetlField.setValue(detlField.getValue()); - locDetlField.setHostId(hostId); - if (!locDetlFieldService.save(locDetlField)) { - throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); + if (!locDetlService.removeById(locdetl)) { + throw new CoolException("搴撳瓨鏄庣粏鍒犻櫎澶辫触!!"); + } + } else { + LocDetl locdetl = locDetlService.getOne(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocId, loc.getId()) + .eq(LocDetl::getBatch, taskDetl.getBatch()) + .eq(LocDetl::getMatId, taskDetl.getMatId())); + locdetl.setWorkQty(0.0); + locdetl.setAnfme(anfme); + + if (!locDetlService.updateById(locdetl)) { + throw new CoolException("搴撳瓨鏄庣粏鏇存柊澶辫触锛侊紒"); } } } @@ -423,6 +417,11 @@ } } + /** + * 灏嗗師鏈夊簱瀛樻槑缁嗗垹闄� + * 搴撳瓨鐘舵�佽缃负绌哄簱鐘舵�� + * @param task + */ //鎷f枡鍑哄簱 private void executeTask103(Task task) { Long hostId = task.getHostId(); @@ -432,7 +431,7 @@ if (loc == null) { throw new CoolException("搴撲綅涓嶅瓨鍦�"); } - if (loc.getLocStsId() != LocStsType.R.val()) { + if (loc.getLocStsId() != LocStsType.S.val()) { throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); } List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); -- Gitblit v1.9.1