From 3fe95953cc780d5335bb4f28de0a27d102d205c2 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 24 Feb 2026 11:54:51 +0800 Subject: [PATCH] =?UTF-8?q?webcad=E6=8B=86=E5=8D=95=E5=AF=B9=E5=9B=BE?= =?UTF-8?q?=E7=BA=B8id=E4=B8=BA=E7=A9=BA=E7=9A=84=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderComponentServiceImpl.java | 27 +++++++++++++++++-- .../module/plan/enums/ErrorCodeConstants.java | 2 +- .../OrderImportTaskServiceImpl.java | 6 ++++- .../WebCadOrderImportServiceImpl.java | 3 +++ .../WebCadOrderImportAsyncFactory.java | 2 ++ .../resources/message_errorcode.properties | 3 ++- .../message_errorcode_cht.properties | 3 ++- .../resources/message_errorcode_en.properties | 3 ++- 8 files changed, 42 insertions(+), 7 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java index f2860be67..011b683d1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java @@ -134,7 +134,13 @@ public class OrderComponentServiceImpl implements OrderComponentService { @Override public List getComponentListOnTopId(OrderDetailComponentListReqVO reqVO) { Set componentIds = reqVO.getComponentIds(); + if(CollUtil.isEmpty(componentIds)) { + return Collections.emptyList(); + } + // 校验订单 Long orderId = reqVO.getOrderId(); + OrderDO orderDO = orderMapper.selectById(orderId); + AssertUtils.notEmpty(orderDO,ORDER_NOT_EXISTS); // 1、查询部件 List componentDOS = orderComponentMapper.selectByIds(componentIds); @@ -172,7 +178,13 @@ public class OrderComponentServiceImpl implements OrderComponentService { @Override public PageResult getViewComponentPage(OrderDetailComponentPageReqVO pageReqVO) { Set componentIds = pageReqVO.getComponentIds(); + if (CollUtil.isEmpty(componentIds)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + // 校验订单 Long orderId = pageReqVO.getOrderId(); + OrderDO orderDO = orderMapper.selectById(orderId); + AssertUtils.notEmpty(orderDO,ORDER_NOT_EXISTS); // 1、查询顶级 List componentDOS = orderComponentMapper.selectByIds(componentIds); @@ -248,15 +260,26 @@ public class OrderComponentServiceImpl implements OrderComponentService { return Collections.emptyList(); } + // 整理出id和cadViewFileId的对应关系 + Map cadViewFileIdMap = orderComponentDOS.stream() + .collect(Collectors.toMap(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId)); + // 查询所有板件的视图所需信息 PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderId, null, null, componentIds, true); List records = viewPlatesPage.getRecords(); + long total = viewPlatesPage.getTotal(); List resultList = new ArrayList<>(); - if (CollUtil.isNotEmpty(records)) { - resultList = BeanUtil.copyToList(records, OrderViewPlatePageRespVO.class); + if(total > 0) { + resultList = records.stream().map(item -> { + OrderViewPlatePageRespVO vo = new OrderViewPlatePageRespVO(); + BeanUtil.copyProperties(item, vo); + + vo.setCadViewFileId(cadViewFileIdMap.get(item.getCompId())); + return vo; + }).toList(); } return resultList; } diff --git a/cf-module-prod-plan/cf-module-prod-plan-api/src/main/java/com/cf/imes/module/plan/enums/ErrorCodeConstants.java b/cf-module-prod-plan/cf-module-prod-plan-api/src/main/java/com/cf/imes/module/plan/enums/ErrorCodeConstants.java index 6569e7c27..f718d4fce 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-api/src/main/java/com/cf/imes/module/plan/enums/ErrorCodeConstants.java +++ b/cf-module-prod-plan/cf-module-prod-plan-api/src/main/java/com/cf/imes/module/plan/enums/ErrorCodeConstants.java @@ -24,5 +24,5 @@ public class ErrorCodeConstants { public static final ErrorCode WEBCAD_ORDER_IMPORT_PEEK_NOT_EXIST_ERROR = new ErrorCode(1_005_000_014, "webcad.order.import.peek.not_exist"); public static final ErrorCode WEBCAD_ORDER_IMPORT_ORDER_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_005_000_015, "webcad.order.import.order.update.concurrent"); public static final ErrorCode WEBCAD_ORDER_IMPORT_GOODS_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_005_000_016, "webcad.order.import.goods.update.concurrent"); - + public static final ErrorCode WEBCAD_ORDER_IMPORT_CAD_VIEW_FILE_ID_EMPTY_ERROR = new ErrorCode(1_005_000_017, "webcad.order.import.cad.view.file.id.empty.error"); } diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/OrderImportTaskServiceImpl.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/OrderImportTaskServiceImpl.java index 318b9610f..9aee31f41 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/OrderImportTaskServiceImpl.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/OrderImportTaskServiceImpl.java @@ -3,6 +3,7 @@ package com.cf.imes.module.plan.service.orderImport; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cf.imes.framework.common.exception.ServiceException; +import com.cf.imes.framework.common.util.i18n.core.util.I18nUtils; import com.cf.imes.module.executor.enums.OrderImportStatusEnum; import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum; import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO; @@ -26,6 +27,9 @@ public class OrderImportTaskServiceImpl implements OrderImportTaskService { @Resource private OrderImportTaskMapper orderImportTaskMapper; + @Resource + private I18nUtils i18nUtils; + @Override @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public OrderImportTaskDO confirmOrderImport(Long taskId) { @@ -61,7 +65,7 @@ public class OrderImportTaskServiceImpl implements OrderImportTaskService { } String msg; if (ex instanceof ServiceException) { - msg = ex.getMessage(); + msg = i18nUtils.getMessage(ex.getMessage()); } else { msg = ORDER_IMPORT_FAIL.getMsg(); } diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/WebCadOrderImportServiceImpl.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/WebCadOrderImportServiceImpl.java index 3b5e99188..89b8917d2 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/WebCadOrderImportServiceImpl.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/WebCadOrderImportServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cf.imes.framework.common.exception.ErrorCode; import com.cf.imes.framework.common.exception.ServiceException; +import com.cf.imes.framework.common.util.Assert.AssertUtils; import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd; import com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; @@ -31,6 +32,7 @@ import com.cf.imes.module.plan.dal.mysql.orderBody.OrderBodyMapper; import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper; import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper; +import com.cf.imes.module.plan.enums.ErrorCodeConstants; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.order.OrderInputProcessor; import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory; @@ -174,6 +176,7 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService { // cad图纸文件id cadViewFileId = webCadDataReqVO.getCadViewFileId(); + AssertUtils.notEmpty(cadViewFileId, ErrorCodeConstants.WEBCAD_ORDER_IMPORT_CAD_VIEW_FILE_ID_EMPTY_ERROR); webCadOrderImportFactory.analyzeTempData(webCadDataReqVO); } else { sync = false; diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java index 3b159822c..ddb5ea2ab 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java @@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cf.imes.framework.common.exception.ErrorCode; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.framework.common.util.Assert.AssertUtils; import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper; @@ -304,6 +305,7 @@ public class WebCadOrderImportAsyncFactory { break; case "CadViewFileId": cadViewFileId = reader.readLong(); + AssertUtils.notEmpty(cadViewFileId, ErrorCodeConstants.WEBCAD_ORDER_IMPORT_CAD_VIEW_FILE_ID_EMPTY_ERROR); break; case "ComponentGroupTree": analyzeCadComponentList(reader); diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode.properties b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode.properties index ef5769276..547774d67 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode.properties +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode.properties @@ -29,4 +29,5 @@ webcad.order.import.plate_num.threshold.reach=部分导入成功,生产单{} order.import.plate.goods.no_match=导入失败,板材库中无板材匹配,商品编码:{},商品名称:{},材质:{},颜色:{},厚度:{},品牌:{} webcad.order.import.peek.not_exist=导入失败:数据源不存在,请检查消息可靠性 webcad.order.import.order.update.concurrent=导入失败:生产单号{}板件数量已发生改变,请重新导入 -webcad.order.import.goods.update.concurrent=导入失败:材质{}板件数量已发生改变,请重新导入 \ No newline at end of file +webcad.order.import.goods.update.concurrent=导入失败:材质{}板件数量已发生改变,请重新导入 +webcad.order.import.cad.view.file.id.empty.error=导入失败:请检查CAD图纸数据是否上传成功 \ No newline at end of file diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_cht.properties b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_cht.properties index a6bf59e01..87d3df8d7 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_cht.properties +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_cht.properties @@ -29,4 +29,5 @@ webcad.order.import.plate_num.threshold.reach=部分匯入成功,生產單{} order.import.plate.goods.no_match=匯入失敗,板材庫中無板材匹配,商品編碼:{},商品名稱:{},材質:{},顏色:{},厚度:{},品牌:{} webcad.order.import.peek.not_exist=匯入失敗:資料來源不存在,請檢查訊息可靠性 webcad.order.import.order.update.concurrent=匯入失敗:生產單號{}板件數量已發生變更,請重新匯入 -webcad.order.import.goods.update.concurrent=匯入失敗:材質{}板件數量已發生變更,請重新匯入 \ No newline at end of file +webcad.order.import.goods.update.concurrent=匯入失敗:材質{}板件數量已發生變更,請重新匯入 +webcad.order.import.cad.view.file.id.empty.error=匯入失敗:請檢查CAD圖紙數據是否上傳成功 \ No newline at end of file diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_en.properties b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_en.properties index 76d2d0b9d..e3a8a614d 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_en.properties +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/resources/message_errorcode_en.properties @@ -29,4 +29,5 @@ webcad.order.import.plate_num.threshold.reach=Partial import succeeded: the numb order.import.plate.goods.no_match=Import failed: no matching plate found in plate library, product code: {}, product name: {}, material: {}, color: {}, thickness: {}, brand: {} webcad.order.import.peek.not_exist=Import failed: data source does not exist, please check message reliability webcad.order.import.order.update.concurrent=Import failed: plate quantity under production order {} has changed, please re-import -webcad.order.import.goods.update.concurrent=Import failed: plate quantity for material {} has changed, please re-import \ No newline at end of file +webcad.order.import.goods.update.concurrent=Import failed: plate quantity for material {} has changed, please re-import +webcad.order.import.cad.view.file.id.empty.error=Import failed: Please check if the CAD drawing data was uploaded successfully \ No newline at end of file