From f6191d655f1bb3677965ccfa63c67447bf1ff24a Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Wed, 20 May 2026 15:56:55 +0800 Subject: [PATCH] =?UTF-8?q?1449=20MPM=E5=90=8C=E6=AD=A5=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=8F=8A=E9=92=A2=E6=9E=84=E5=8C=85=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/MaterialController.java | 28 +++++++++++++- .../StructuralPackageController.java | 37 +++++++++++++++++-- .../service/MaterialControllerService.java | 35 ++++++------------ .../wms/common/pojo/qo/MaterialAddQO.java | 4 ++ 4 files changed, 75 insertions(+), 29 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java index c8010bcf..661959ce 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java @@ -1,6 +1,7 @@ package com.nflg.wms.admin.controller; import com.nflg.wms.admin.service.MaterialControllerService; +import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.constant.UserType; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -19,6 +20,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -31,6 +33,7 @@ import java.util.Set; /** * 图纸管理 */ +@Slf4j @RestController @RequestMapping("/material") public class MaterialController extends BaseController { @@ -182,7 +185,28 @@ public class MaterialController extends BaseController { */ @PostMapping("/mpm/syncFromMpmBatch") public ApiResult syncFromMpmBatch(/*@Valid */@RequestBody @NotEmpty List requests) { - materialControllerService.syncFromMpmBatch(requests); - return ApiResult.success(); + StringBuilder errorMessages = new StringBuilder(); + int successCount = 0; + int failCount = 0; + + for (MaterialAddQO request : requests) { + try { + materialControllerService.syncFromMpm(request); + successCount++; + } catch (Exception e) { + failCount++; + String errorMsg = String.format("[%s] %s; ", request.getNo(), e.getMessage()); + errorMessages.append(errorMsg); + log.error("同步图纸失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); + } + } + + if (failCount > 0) { + String resultMsg = String.format("批量同步完成,成功%d条,失败%d条。失败详情: %s", + successCount, failCount, errorMessages.toString()); + return ApiResult.error(STATE.BusinessError, resultMsg); + } else { + return ApiResult.success(); + } } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java index 65a6616a..332d52ce 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java @@ -1,6 +1,7 @@ package com.nflg.wms.admin.controller; import com.nflg.wms.admin.service.StructuralPackageControllerService; +import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.dto.PackageMaterialDTO; @@ -13,6 +14,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +25,7 @@ import java.util.List; /** * 钢构包管理 */ +@Slf4j @RestController @RequestMapping("/package") public class StructuralPackageController extends BaseController { @@ -144,8 +147,13 @@ public class StructuralPackageController extends BaseController { */ @PostMapping("/mpm/syncFromMpm") public ApiResult syncFromMpm(/*@Valid */@RequestBody PackageAddQO request) { - packageControllerService.syncFromMpm(request); - return ApiResult.success(); + try { + packageControllerService.syncFromMpm(request); + return ApiResult.success(); + } catch (Exception e) { + log.error("从MPM系统同步钢构包数据失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); + return ApiResult.error(STATE.BusinessError, "同步失败: " + e.getMessage()); + } } /** @@ -153,8 +161,29 @@ public class StructuralPackageController extends BaseController { */ @PostMapping("/mpm/syncFromMpmBatch") public ApiResult syncFromMpmBatch(/*@Valid */@RequestBody @NotEmpty List requests) { - packageControllerService.syncFromMpmBatch(requests); - return ApiResult.success(); + StringBuilder errorMessages = new StringBuilder(); + int successCount = 0; + int failCount = 0; + + for (PackageAddQO request : requests) { + try { + packageControllerService.syncFromMpm(request); + successCount++; + } catch (Exception e) { + failCount++; + String errorMsg = String.format("[%s] %s; ", request.getNo(), e.getMessage()); + errorMessages.append(errorMsg); + log.error("同步钢构包失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); + } + } + + if (failCount > 0) { + String resultMsg = String.format("批量同步完成,成功%d条,失败%d条。失败详情: %s", + successCount, failCount, errorMessages.toString()); + return ApiResult.error(STATE.BusinessError, resultMsg); + } else { + return ApiResult.success(); + } } // // /** diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java index 648c5749..9e1d6408 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java @@ -35,6 +35,7 @@ import org.apache.commons.lang3.math.NumberUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import org.ttzero.excel.entity.ListSheet; @@ -415,33 +416,21 @@ public class MaterialControllerService { } /** - * 批量从MPM系统同步图纸数据 + * 从MPM系统同步图纸数据(单个) * 每次推送都是新版本,直接新增 */ - @Transactional - public void syncFromMpmBatch(@Valid @NotEmpty List requests) { - log.info("开始批量从MPM系统同步图纸数据,共{}条", requests.size()); + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void syncFromMpm(@Valid MaterialAddQO request) { + log.info("开始从MPM系统同步图纸数据: {}", request.getNo()); - for (MaterialAddQO request : requests) { - try { - log.info("开始从MPM系统同步图纸数据: {}", request.getNo()); - - WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); - - wmsMaterial.setCreateBy("MPM_SYNC"); - wmsMaterial.setCreateTime(LocalDateTime.now()); - wmsMaterial.setFromMpm(true); // 标记为来自MPM - - materialService.add(wmsMaterial); - - log.info("成功从MPM系统同步图纸数据: {}, 版本: {}", request.getNo(), wmsMaterial.getVersion()); - } catch (Exception e) { - log.error("同步图纸失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); - // 继续处理下一条,不中断整个批量同步 - } - } + WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); + wmsMaterial.setCreateBy("MPM_SYNC"); + wmsMaterial.setCreateTime(LocalDateTime.now()); + wmsMaterial.setFromMpm(true); // 标记为来自MPM - log.info("批量从MPM系统同步图纸数据完成"); + materialService.add(wmsMaterial); + + log.info("成功从MPM系统同步图纸数据: {}, 版本: {}", request.getNo(), wmsMaterial.getVersion()); } /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java index 6114ff31..a5f4f489 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java @@ -76,4 +76,8 @@ public class MaterialAddQO { * 版本号 */ private String version; + + private String filename; + + private String fileindex; }