From bdb2ae10053cd96900e6bf0900dc606a3daca55f Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 02 四月 2025 15:17:51 +0800 Subject: [PATCH] 工作档入库 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 40 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 37 insertions(+), 3 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java index 4ce0193..11a0603 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java @@ -3,15 +3,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.entity.enums.TaskStsType; -import com.vincent.rsf.server.manager.entity.Task; -import com.vincent.rsf.server.manager.entity.TaskItem; +import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.service.*; +import com.vincent.rsf.server.system.constant.SerialRuleCode; +import com.vincent.rsf.server.system.utils.SerialRuleUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -27,6 +31,12 @@ private TaskItemService taskItemService; @Autowired private StockItemService stockItemService; + @Autowired + private PurchaseService purchaseService; + @Autowired + private AsnOrderService asnOrderService; + @Autowired + private AsnOrderItemService asnOrderItemService; @Autowired private StockService stockService; @Autowired @@ -50,9 +60,33 @@ if (taskItems.isEmpty()) { throw new CoolException("浠诲姟鏄庣粏涓虹┖锛侊紒"); } - taskItems.forEach(item -> { + //鑾峰彇鍗曟嵁鏄庣粏ID + List<Long> ids = taskItems.stream().map(TaskItem::getOrderItemId).collect(Collectors.toList()); + List<AsnOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, ids)); + if (items.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛氭槑缁嗗崟鎹笉瀛樺湪"); + } + /**鑾峰彇璁㈠崟*/ + List<Long> orders = items.stream().map(AsnOrderItem::getAsnId).collect(Collectors.toList()); + Map<Long, List<AsnOrderItem>> listMap = items.stream().collect(Collectors.groupingBy(AsnOrderItem::getAsnId)); + listMap.keySet().forEach(key -> { + AsnOrder order = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, key)); + Stock stock = new Stock(); + if (!Objects.isNull(order.getPoCode()) && StringUtils.isNotBlank(order.getPoCode())) { + Purchase purchase = purchaseService.getOne(new LambdaQueryWrapper<Purchase>().eq(Purchase::getCode, order.getPoCode())); + stock.setPlatOrderNo(purchase.getPlatCode()).setPlatToken(purchase.getPlatId()); + } + String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null); + if (StringUtils.isBlank(ruleCode)) { + throw new CoolException("褰撳墠涓氬姟锛�" + SerialRuleCode.SYS_STOCK_CODE + "锛岀紪鐮佽鍒欎笉瀛樺湪锛侊紒"); + } + stock.setAsnId(order.getId()).setAsnCode(order.getCode()); + if (!stockService.save(stock)) { + throw new CoolException("搴撳瓨淇濆瓨澶辫触锛侊紒"); + } }); + } } -- Gitblit v1.9.1