From f3a9395e7f29cd4fc78c49642847ad722845e1b4 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" <925258474@qq.com> Date: Wed, 3 Jul 2024 21:19:24 +0800 Subject: [PATCH] no message --- .../youchain/businessdata/domain/Task.java | 2 +- .../businessdata/rest/MlsController.java | 2 +- .../service/impl/MlsServiceImpl.java | 35 +++++++++++-------- .../youchain/utils/BatchCreateOrUpdate.java | 5 +-- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java index ba81129..aae03b5 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java @@ -65,7 +65,7 @@ public class Task extends BaseEntity implements Serializable { @ApiModelProperty(value = "任务类型") private String taskType; - @OneToOne(cascade = CascadeType.PERSIST) + @OneToOne @JoinColumn(name = "asn_detail_id") @ApiModelProperty(value = "收货明细序号") private AsnDetail asnDetail; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/MlsController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/MlsController.java index de5de42..ab5ab6f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/MlsController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/MlsController.java @@ -89,7 +89,7 @@ public class MlsController { @AnonymousAccess @Log("叫料指令") @ApiOperation("叫料指令") - public synchronized ResponseEntity getIssueInfo(@RequestBody IssueInfo issueInfo) { + public ResponseEntity getIssueInfo(@RequestBody IssueInfo issueInfo) { /*try { } catch (Exception e) { return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java index 3d4ed87..cd4ae57 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java @@ -13,6 +13,7 @@ import com.youchain.basicdata.service.PointService; import com.youchain.businessdata.domain.*; import com.youchain.businessdata.inputJson.*; import com.youchain.businessdata.service.*; +import com.youchain.config.thread.ThreadPoolExecutorUtil; import com.youchain.modules.system.domain.Dept; import com.youchain.modules.system.service.DeptService; import com.youchain.utils.*; @@ -24,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; @Service @@ -437,16 +439,16 @@ public class MlsServiceImpl implements MlsService { for (Inventory inv : result) { /* 按顺序获取出库接驳点*/ Point endPoint; - List pointList = pointRepository.findByAreaAndStatus("出库接驳口",BaseStatus.FREE); - if (pointList.size()<1) { + List pointList = pointRepository.findByAreaAndStatus("出库接驳口", BaseStatus.FREE); + if (pointList.size() < 1) { /* 出库接驳口无空闲库位,更新状态重新分配*/ - pointList = pointRepository.findByAreaAndStatus("出库接驳口",BaseStatus.USED); - for(Point p:pointList){ + pointList = pointRepository.findByAreaAndStatus("出库接驳口", BaseStatus.USED); + for (Point p : pointList) { p.setStatus(BaseStatus.FREE); pointRepository.save(p); } } - endPoint=pointList.get(0); + endPoint = pointList.get(0); endPoint.setStatus(BaseStatus.USED); pointRepository.save(endPoint); @@ -460,7 +462,7 @@ public class MlsServiceImpl implements MlsService { inventoryToUpdate.add(updateInventory(inv)); //生成出库明细 - PickDetail pd = createPickDetail(item, inv.getBillCode(), itemKey.getPropC1(), inv.getQuantity(),issueInfo.getTaskNumber()); + PickDetail pd = createPickDetail(item, inv.getBillCode(), itemKey.getPropC1(), inv.getQuantity(), issueInfo.getTaskNumber()); pickDetailToCreate.add(pd); //生成搬运任务 @@ -472,41 +474,44 @@ public class MlsServiceImpl implements MlsService { taskToCreate.add(task); } + ExecutorService executor = ThreadPoolExecutorUtil.getPoll("getIssueInfo-job"); + + // 批量更新库存信息 CompletableFuture inventoryFuture = CompletableFuture.runAsync(() -> { //批量更新库存信息 if (!inventoryToUpdate.isEmpty()) { batchCreateOrUpdate.batchUpdate(inventoryToUpdate); } - }); + }, executor); - CompletableFuture pickDetailFuture = inventoryFuture.thenAccept(result2 -> { + CompletableFuture pickDetailFuture = inventoryFuture.thenRunAsync(() -> { //批量生成叫料明细 if (!pickDetailToCreate.isEmpty()) { batchCreateOrUpdate.batchCreate(pickDetailToCreate); } - }); + }, executor); - CompletableFuture agvTaskFuture = pickDetailFuture.thenAccept(result3 -> { + CompletableFuture agvTaskFuture = pickDetailFuture.thenRunAsync(() -> { // 批量生成agv任务 if (!agvTaskToCreate.isEmpty()) { batchCreateOrUpdate.batchCreate(agvTaskToCreate); } - }); + }, executor); - CompletableFuture taskFuture = agvTaskFuture.thenAccept(result4 -> { + CompletableFuture taskFuture = agvTaskFuture.thenRunAsync(() -> { // 批量生成任务 if (!taskToCreate.isEmpty()) { batchCreateOrUpdate.batchCreate(taskToCreate); } - }); - - CompletableFuture.allOf(inventoryFuture, pickDetailFuture, agvTaskFuture, taskFuture).join(); + }, executor); + taskFuture.join(); + executor.shutdown(); }); diff --git a/youchain-system/src/main/java/com/youchain/utils/BatchCreateOrUpdate.java b/youchain-system/src/main/java/com/youchain/utils/BatchCreateOrUpdate.java index eefc6a0..c481bfd 100644 --- a/youchain-system/src/main/java/com/youchain/utils/BatchCreateOrUpdate.java +++ b/youchain-system/src/main/java/com/youchain/utils/BatchCreateOrUpdate.java @@ -2,6 +2,7 @@ package com.youchain.utils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; + import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; @@ -18,7 +19,7 @@ public class BatchCreateOrUpdate { * @param entities 要插入的实体列表 * @param 实体类型 */ - @Transactional + @Transactional(rollbackFor = Exception.class) public void batchCreate(List entities) { int batchSize = 100; if (entities == null || entities.isEmpty()) { @@ -50,7 +51,7 @@ public class BatchCreateOrUpdate { * @param entities 要更新的实体列表 * @param 实体类型 */ - @Transactional + @Transactional(rollbackFor = Exception.class) public void batchUpdate(List entities) { int batchSize = 100; if (entities == null || entities.isEmpty()) {