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 @@ ); + +