From e31594c5d4e896465cef8f230f16ed61442fd3d3 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 1 Jun 2026 12:00:48 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81webcad=E6=8B=86=E5=8D=95=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E7=8A=B6=E6=80=81=E8=AE=BE=E7=BD=AE=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=EF=BC=9B2=E3=80=81=E8=A3=85=E9=85=8D=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E7=8A=B6=E6=80=81=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ordercomponent/OrderComponentMapper.java | 10 +++ .../assemblylist/AssemblyListServiceImpl.java | 51 +++++-------- .../ordercomponent/OrderComponentMapper.xml | 52 ++++++++++++++ .../WebCadOrderImportAsyncFactory.java | 50 +++++++++++-- .../factory/WebCadOrderImportFactory.java | 5 -- .../AssemblyConfigServiceImpl.java | 71 ++++++++++++++----- 6 files changed, 177 insertions(+), 62 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java index dcfe12bdb..61db53086 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java @@ -44,6 +44,16 @@ public interface OrderComponentMapper extends BaseMapperX { */ List getOrderTopComponentList(@Param("orderIds")List orderIds, @Param("name") String name); + /** + * 查询订单顶级部件,关联order_item,如果被移除了就不展示了 + * + * @param orderIds + * @param processStatus + * @param name + * @return + */ + List getOrderTopComponentListByAssemblyStatus(@Param("orderIds") List orderIds, @Param("assemblyStatusList") List processStatus, @Param("name") String name); + /** * 查询订单topid下的所有大于level层级的部件列表 * @param orderId diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java index 0aced8713..75724c53b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java @@ -98,21 +98,20 @@ public class AssemblyListServiceImpl implements AssemblyListService { .map(OrderComponentDO::getTopId) .toList(); - // 根据部件的topid查询树上所有已加工节点 - List topUnProcessedComponentList = orderComponentMapper.selectList(new LambdaQueryWrapperX() + // 查询所有top节点下的子节点 + List allNodesOnTopIds = orderComponentMapper.selectList(new LambdaQueryWrapperX() .in(OrderComponentDO::getTopId, topIds) .in(OrderComponentDO::getOrderId, orderIds) - .select(OrderComponentDO::getId, OrderComponentDO::getPid, OrderComponentDO::getName, OrderComponentDO::getProcessStatus)); + .select(OrderComponentDO::getId, OrderComponentDO::getPid, OrderComponentDO::getName, OrderComponentDO::getProcessStatus, OrderComponentDO::getExtraProcessStatus)); - // 计算部件状态 - List treeCompareVOS = calculateProcessingStatusAccordingToAssemblyConfig(topUnProcessedComponentList); - - List result = new ArrayList<>(); - // 树形扁平化 - for (OrderComponentTreeCompareVO vo : treeCompareVOS) { - flatTree(vo, result); + // 遍历处理状态 + for (OrderComponentDO orderComponent : allNodesOnTopIds) { + // extraProcessStatus不为空时替代processStatus + if (ObjectUtil.isNotEmpty(orderComponent.getExtraProcessStatus())) { + orderComponent.setProcessStatus(orderComponent.getExtraProcessStatus()); + } } - return result; + return BeanUtil.copyToList(allNodesOnTopIds, OrderComponentRespVO.class); } /** @@ -386,8 +385,8 @@ public class AssemblyListServiceImpl implements AssemblyListService { ); // 不加工不可操作 - AssertUtils.notEquals( - componentDO.getProcessStatus(), + AssertUtils.equals( + componentDO.getExtraProcessStatus(), OrderComponentProcessStatusEnum.NOT_PROCESS.getStatus(), ORDER_COMPONENT_NOT_PROCESS ); @@ -415,7 +414,7 @@ public class AssemblyListServiceImpl implements AssemblyListService { AssertUtils.equals( componentDO.getProcessStatus(), - OrderComponentProcessStatusEnum.UNPROCESSED.getStatus(), + OrderComponentProcessStatusEnum.PROCESSED.getStatus(), ORDER_COMPONENT_PROCESSED_REPEAT ); } @@ -425,7 +424,7 @@ public class AssemblyListServiceImpl implements AssemblyListService { AssertUtils.equals( componentDO.getProcessStatus(), - OrderComponentProcessStatusEnum.PROCESSED.getStatus(), + OrderComponentProcessStatusEnum.UNPROCESSED.getStatus(), ORDER_COMPONENT_RESTORE_REPEAT ); } @@ -783,24 +782,8 @@ public class AssemblyListServiceImpl implements AssemblyListService { return Collections.emptyList(); } - List states = buildTopComponentStates(reqVO); - - if (CollUtil.isEmpty(states)) { - return Collections.emptyList(); - } - - Set statusSet = - Optional.ofNullable(reqVO.getProcessStatus()) - .orElse(Collections.emptyList()) - .stream() - .map(OrderComponentProcessStatusEnum::fromValue) - .collect(Collectors.toSet()); - - List result = states.stream() - .filter(state -> matchAnyStatus(state, statusSet)) - .map(state -> state.node) - .toList(); - + // 查询顶级部件 + List result = orderComponentMapper.getOrderTopComponentListByAssemblyStatus(reqVO.getOrderIds(), reqVO.getProcessStatus(), reqVO.getName()); return BeanUtil.copyToList(result, OrderComponentRespVO.class); } @@ -812,7 +795,7 @@ public class AssemblyListServiceImpl implements AssemblyListService { */ private List buildTopComponentStates(OrdersTopComponentListReqVO reqVO) { // 查询顶级部件 - List topComponents = orderComponentMapper.getOrderTopComponentList(reqVO.getOrderIds(), reqVO.getName()); + List topComponents = orderComponentMapper.getOrderTopComponentListByAssemblyStatus(reqVO.getOrderIds(), reqVO.getProcessStatus(), reqVO.getName()); if (CollUtil.isEmpty(topComponents)) { return Collections.emptyList(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml index 5b0d2c9ef..02a154550 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml @@ -57,6 +57,58 @@ ); + +