From e2f5d7f8e9818977b0eb3b163447c10f8caca2b5 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 30 七月 2025 12:58:31 +0800 Subject: [PATCH] 调拔单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java index 8b9ee81..e7fc0bb 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java @@ -7,10 +7,7 @@ import com.vincent.rsf.server.common.config.SysStockProperties; import com.vincent.rsf.server.common.utils.DateUtils; import com.vincent.rsf.server.manager.entity.*; -import com.vincent.rsf.server.manager.enums.AsnExceStatus; -import com.vincent.rsf.server.manager.enums.OrderType; -import com.vincent.rsf.server.manager.enums.POExceStatus; -import com.vincent.rsf.server.manager.enums.WarehouseAreasType; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.WarehouseAreasItemServiceImpl; import com.vincent.rsf.server.system.constant.GlobalConfigCode; @@ -61,6 +58,10 @@ private WarehouseAreasItemServiceImpl warehouseAreasItemService; @Autowired private CompanysService companysService; + @Autowired + private TransferService transferService; + @Autowired + private OutStockService outStockService; /** * @author Ryan @@ -68,7 +69,6 @@ * @description: 鐩存帴缁勬墭寮�鍏充负true锛屽皢鏀惰揣鍗曠洿鎺ュ姞鍏ヤ复鏃跺簱瀛� * @version 1.0 */ -// @Scheduled(cron = "0 0/05 * * * ? ") @Scheduled(cron = "0/25 * * * * ?") @Transactional(rollbackFor = Exception.class) public synchronized void IgnoreReceipt() { @@ -85,6 +85,18 @@ .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); if (!orders.isEmpty()) { for (WkOrder order : orders) { + if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)) { + WkOrder one = outStockService.getOne(new LambdaQueryWrapper<WkOrder>() + .eq(WkOrder::getPoId, order.getPoId()) + .eq(WkOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)); + if (Objects.isNull(one)) { + throw new CoolException("鏁版嵁閿欒"); + } + if (!one.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)) { + continue; + } + } + List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); if (orderItems.isEmpty()) { return; @@ -109,7 +121,11 @@ throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�"); } //鏇存柊鏀惰揣鍖哄簱瀛� - extracted(one, item, order, matnr); + try { + updateReceipt(one, item, order, matnr); + } catch (Exception e) { + throw new CoolException(e.getMessage()); + } if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>().set(WkOrderItem::getQty, item.getAnfme()).eq(WkOrderItem::getId, item.getId()))) { throw new CoolException("鏀惰揣鍗曟槑缁嗗畬鎴愭暟閲忎慨鏀瑰け璐ワ紒锛�"); @@ -136,7 +152,8 @@ * @description: 鏀惰揣鍖哄簱瀛樻洿鏂� * @version 1.0 */ - private void extracted(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) { + @Transactional(rollbackFor = Exception.class) + public void updateReceipt(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) throws Exception { Companys companys = new Companys(); if (StringUtils.isNoneBlank(orderItem.getSplrCode())) { companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode())); -- Gitblit v1.9.1