From 2b0e94aaf3aadc55db3069d69bc9f1b45455299d Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 02 八月 2025 08:58:51 +0800 Subject: [PATCH] 调拔单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 45 +++++++++++++++++++++++++++++++++------------ 1 files changed, 33 insertions(+), 12 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 188f14c..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,9 +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.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; @@ -60,6 +58,10 @@ private WarehouseAreasItemServiceImpl warehouseAreasItemService; @Autowired private CompanysService companysService; + @Autowired + private TransferService transferService; + @Autowired + private OutStockService outStockService; /** * @author Ryan @@ -67,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() { @@ -78,10 +79,25 @@ if (!Boolean.parseBoolean(config.getVal())) { return; } - List<WkOrder> orders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); + //鑷姩鏀惰揣鍗� + List<WkOrder> orders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>() + .eq(WkOrder::getType, OrderType.ORDER_IN.type) + .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); if (!orders.isEmpty()) { for (WkOrder order : orders) { - List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); + 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; } @@ -105,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("鏀惰揣鍗曟槑缁嗗畬鎴愭暟閲忎慨鏀瑰け璐ワ紒锛�"); @@ -132,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())); @@ -163,11 +184,11 @@ .setWeight(matnr.getWeight()) .setFieldsIndex(orderItem.getFieldsIndex()) .setShipperId(matnr.getShipperId()); - + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>() .eq(WarehouseAreasItem::getMatnrCode, orderItem.getMatnrCode()) .eq(!Cools.isEmpty(orderItem.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, orderItem.getFieldsIndex()) - .eq(WarehouseAreasItem::getAsnCode, orderItem.getAsnCode()) + .eq(WarehouseAreasItem::getAsnCode, orderItem.getOrderCode()) .eq(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch()); if (Objects.isNull(orderItem.getIsptResult())) { queryWrapper.isNull(WarehouseAreasItem::getIsptResult); @@ -244,10 +265,10 @@ } // String barcode = code + matnr.getCode(); orderItem.setAnfme(item.getAnfme()) - .setAsnId(order.getId()) + .setOrderId(order.getId()) .setQty(item.getQty()) .setSplrName(item.getSplrName()) - .setAsnCode(code) + .setOrderCode(code) .setSplrCode(item.getSplrCode()) .setPoDetlId(item.getId()) .setPlatItemId(item.getPlatItemId()) -- Gitblit v1.9.1