diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java index 911fcf070..6f2126b68 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java @@ -44,6 +44,12 @@ public class OrderComponentController { return success(orderComponentService.getOrderComponentList(reqVO)); } + @PostMapping("/top/list") + @Operation(summary = "查询订单顶级部件列表") + public CommonResult> getOrderTopComponentList(@Valid @RequestBody OrderDetailComponentListReqVO reqVO) { + return success(orderComponentService.getOrderTopComponentList(reqVO)); + } + @PostMapping("/view/list") @Operation(summary = "查询订单详情cad视图部件列表") public CommonResult> getOrderViewComponentList(@Valid @RequestBody OrderDetailComponentListReqVO reqVO) { diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentListReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentListReqVO.java index 4fb669075..cf2ec4ac3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentListReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentListReqVO.java @@ -1,5 +1,7 @@ package com.cf.imes.module.executor.controller.admin.ordercomponent.vo; +import com.cf.imes.framework.common.validation.InEnum; +import com.cf.imes.module.executor.enums.ordercomponent.OrderComponentProcessStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -45,4 +47,8 @@ public class OrderDetailComponentListReqVO { @Schema(description = "是否删除", example = "false") private boolean deleted; + + @Schema(description = "加工状态:0不加工、1已加工、2未加工", example = "1") + @InEnum(OrderComponentProcessStatusEnum.class) + private Integer processStatus; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentPageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentPageReqVO.java index 55ddc2b87..f686b636e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentPageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderDetailComponentPageReqVO.java @@ -33,10 +33,6 @@ public class OrderDetailComponentPageReqVO extends PageParam { @Size(max = 200, message = "{order.detail.component.list.query.componentIds.max}") private Set componentIds; - @Schema(description = "部件编号", example = "1") - @NotNull(message = "{order.detail.component.plate.page.query.componentId.not.null}") - private Long componentId; - @Schema(description = "是否删除", example = "false") private boolean deleted; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java index 19565da4c..ddfcc0948 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java @@ -81,4 +81,9 @@ public class OrderBodyViewPlatesPageDO { * cad设计板编号 */ private String customNumber; + + /** + * 部件id + */ + private Long compId; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java index c5f28cd46..53dc89780 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java @@ -32,7 +32,7 @@ public interface OrderItemMapper extends BaseMapperX { @Param("groupName") String groupName, @Param("organId") Long organId, @Param("deleted") Integer deleted); - IPage selectPlatesDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, + IPage selectPlatesDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, @Param("bodyId") Set bodyId, @Param("groupId") Set groupId, @Param("groupName") String groupName, @Param("organId") Long organId, @Param("deleted") Integer deleted); @@ -41,7 +41,7 @@ public interface OrderItemMapper extends BaseMapperX { @Param("bodyId") Long bodyId, @Param("name") String name, @Param("organId") Long organId, @Param("deleted") Integer deleted); - IPage selectPartsDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, + IPage selectPartsDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, @Param("bodyId") Set bodyId, @Param("groupId") Set groupId, @Param("name") String name, @Param("organId") Long organId, @Param("deleted") Integer deleted, @Param("types") Set types); @@ -119,7 +119,7 @@ public interface OrderItemMapper extends BaseMapperX { @Param("organId") Long organId, @Param("deleted") Integer deleted); - IPage selectGoodsDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, + IPage selectGoodsDetailByOrderId(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Set roomId, @Param("bodyId") Set bodyId, @Param("groupId") Set groupId, @Param("goodsId") Set goodsId, @Param("organId") Long organId, @Param("deleted") Integer deleted); @@ -190,13 +190,17 @@ public interface OrderItemMapper extends BaseMapperX { /** * 分页查询柜体板件视图数据 * - * @param page - * @param orderId - * @param roomId - * @param bodyId + * @param page 分页参数 + * @param orderId 订单ID + * @param roomId 房间ID + * @param bodyId 柜体ID + * @param groupId 加工组ID + * @param organId 组织ID + * @param componentIds 部件ID列表 + * @param cadView 是否需要cad图纸内信息:cad_view_id、seal_left、seal_down、seal_right、seal_up * @return */ - IPage selectBodyViewPlatesPage(@Param("page") IPage page, + IPage selectBodyViewPlatesPage(@Param("page") IPage page, @Param("orderId") Long orderId, @Param("roomId") Long roomId, @Param("bodyId") Long bodyId, diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index 005d69e48..f01164e1e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -312,7 +312,7 @@ public class OrderServiceImpl implements OrderService { @Override public PageResult getPlatesDetail(Long orderId, Set roomIds, Set bodyIds, Set groupIds, String groupName, Integer pageNo, Integer pageSize, Integer deleted) { - PageDTO page = new PageDTO<>(pageNo, pageSize); + PageDTO page = new PageDTO<>(pageNo, pageSize); IPage plateRespVOPage = orderItemMapper.selectPlatesDetailByOrderId(page, orderId, roomIds, bodyIds, groupIds, groupName, getUserOrganId(), deleted); @@ -331,7 +331,7 @@ public class OrderServiceImpl implements OrderService { @Override public PageResult getPartsDetail(Long orderId, Set roomId, Set bodyId, Set groupId, String name, Integer pageNo, Integer pageSize, Integer deleted, Set types) { - PageDTO page = new PageDTO<>(pageNo, pageSize); + PageDTO page = new PageDTO<>(pageNo, pageSize); IPage orderDetail = orderItemMapper.selectPartsDetailByOrderId(page, orderId, roomId, bodyId, groupId, name, getUserOrganId(), deleted, types); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java index 72da7285d..43f1fa423 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java @@ -23,6 +23,14 @@ public interface OrderComponentService { */ List getOrderComponentList(OrderDetailComponentListReqVO reqVO); + /** + * 查询订单顶级部件列表 + * + * @param reqVO + * @return + */ + List getOrderTopComponentList(OrderDetailComponentListReqVO reqVO); + /** * 获取节点的顶级节点下所有节点 * 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 f22daaf29..46b0a40e2 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 @@ -2,7 +2,6 @@ package com.cf.imes.module.executor.service.ordercomponent; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; @@ -119,6 +118,15 @@ public class OrderComponentServiceImpl implements OrderComponentService { return BeanUtil.copyToList(uniqueList, OrderComponentRespVO.class); } + @Override + public List getOrderTopComponentList(OrderDetailComponentListReqVO reqVO) { + List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() + .eq(OrderComponentDO::getOrderId, reqVO.getOrderId()) + .likeIfPresent(OrderComponentDO::getName, reqVO.getName()) + .eqIfPresent(OrderComponentDO::getProcessStatus, reqVO.getProcessStatus())); + return BeanUtil.copyToList(orderComponentDOS, OrderComponentRespVO.class); + } + @Override public List getComponentListOnTopId(OrderDetailComponentListReqVO reqVO) { Set componentIds = reqVO.getComponentIds(); @@ -139,6 +147,7 @@ public class OrderComponentServiceImpl implements OrderComponentService { .eq(OrderComponentDO::getOrderId, orderId) .eqIfPresent(OrderComponentDO::getDeleted, reqVO.isDeleted()) .likeIfPresent(OrderComponentDO::getName, reqVO.getName()) + .eqIfPresent(OrderComponentDO::getProcessStatus, reqVO.getProcessStatus()) .select(OrderComponentDO::getId, OrderComponentDO::getPid, OrderComponentDO::getName, OrderComponentDO::getCadViewFileId)); return BeanUtil.copyToList(topComponentList, OrderComponentRespVO.class); @@ -147,86 +156,91 @@ public class OrderComponentServiceImpl implements OrderComponentService { @Override public PageResult getViewComponentPage(OrderDetailComponentPageReqVO pageReqVO) { Set componentIds = pageReqVO.getComponentIds(); - Long componentId = pageReqVO.getComponentId(); Long orderId = pageReqVO.getOrderId(); // 1、查询顶级 - OrderComponentDO componentDO = orderComponentMapper.selectById(componentId); - if (ObjectUtil.isNull(componentDO)) { + List componentDOS = orderComponentMapper.selectByIds(componentIds); + if (CollUtil.isEmpty(componentDOS) || componentDOS.size() != componentIds.size()) { throw new ServiceException(ORDER_COMPONENT_NOT_EXIST); } + List topIds = componentDOS.stream() + .map(OrderComponentDO::getTopId) + .toList(); - if (CollUtil.isEmpty(componentIds)) { - // 2、把下级部件id作为查询条件 - List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() - .eq(OrderComponentDO::getTopId, componentDO.getTopId()) - .eq(OrderComponentDO::getOrganId, componentDO.getOrganId()) - .eq(OrderComponentDO::getOrderId, orderId) - .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.isDeleted()) - .select(OrderComponentDO::getId)); - if (CollUtil.isNotEmpty(orderComponentDOS)) { - componentIds = orderComponentDOS.stream().map(OrderComponentDO::getId).collect(Collectors.toSet()); - } else { - return new PageResult<>(); + // 2、把下级部件id作为查询条件 + List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() + .in(OrderComponentDO::getTopId, topIds) + .eq(OrderComponentDO::getOrderId, orderId) + .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.isDeleted()) + .select(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId, OrderComponentDO::getPid)); + + Set queryComponentIds = new HashSet<>(); + if (CollUtil.isNotEmpty(orderComponentDOS)) { + for (OrderComponentDO co : componentDOS) { + queryComponentIds.addAll(getChildrenIds(co, orderComponentDOS)); } } else { - // 3、使用入参的部件id作为条件 - componentIds = pageReqVO.getComponentIds(); + return new PageResult<>(); } + // 整理出id和cadViewFileId的对应关系 + Map cadViewFileIdMap = orderComponentDOS.stream() + .collect(Collectors.toMap(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId)); // 分页查询板件 - PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, orderId, null, - null, null, getUserOrganId(), componentIds, false); - return new PageResult<>(BeanUtil.copyToList(pageRes.getRecords(), OrderViewPlatePageRespVO.class), pageRes.getTotal()); + null, null, getUserOrganId(), queryComponentIds, false); + long total = pageRes.getTotal(); + List records = pageRes.getRecords(); + + List resultList = new ArrayList<>(); + 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 new PageResult<>(resultList, total); } @Override public List getViewComponentPlatesCadInfo(OrderDetailComponentPageReqVO pageReqVO) { Set componentIds = pageReqVO.getComponentIds(); - Long componentId = pageReqVO.getComponentId(); Long orderId = pageReqVO.getOrderId(); // 1、查询顶级 - OrderComponentDO componentDO = orderComponentMapper.selectById(componentId); - if (ObjectUtil.isNull(componentDO)) { + List componentDOS = orderComponentMapper.selectByIds(componentIds); + if (CollUtil.isEmpty(componentDOS) || componentDOS.size() != componentIds.size()) { throw new ServiceException(ORDER_COMPONENT_NOT_EXIST); } - Long cadViewFileId = componentDO.getCadViewFileId(); + List topIds = componentDOS.stream() + .map(OrderComponentDO::getTopId) + .toList(); - if (CollUtil.isEmpty(componentIds)) { - // 2、把下级部件id作为查询条件 - List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() - .eq(OrderComponentDO::getTopId, componentDO.getTopId()) - .eq(OrderComponentDO::getOrganId, componentDO.getOrganId()) - .eq(OrderComponentDO::getOrderId, orderId) - .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.isDeleted()) - .select(OrderComponentDO::getId)); - if (CollUtil.isNotEmpty(orderComponentDOS)) { - componentIds = orderComponentDOS.stream().map(OrderComponentDO::getId).collect(Collectors.toSet()); - } else { - return Collections.emptyList(); - } + // 2、把下级部件id作为查询条件 + List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() + .in(OrderComponentDO::getTopId, topIds) + .eq(OrderComponentDO::getOrderId, orderId) + .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.isDeleted()) + .select(OrderComponentDO::getId)); + if (CollUtil.isNotEmpty(orderComponentDOS)) { + componentIds = orderComponentDOS.stream().map(OrderComponentDO::getId).collect(Collectors.toSet()); } else { - // 3、使用入参的部件id作为条件 - componentIds = pageReqVO.getComponentIds(); + return Collections.emptyList(); } // 查询所有板件的视图所需信息 - PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); + PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderId, null, null, null, getUserOrganId(), componentIds, true); List records = viewPlatesPage.getRecords(); List resultList = new ArrayList<>(); if (CollUtil.isNotEmpty(records)) { - resultList = records.stream().map(item -> { - OrderViewPlatePageRespVO vo = new OrderViewPlatePageRespVO(); - BeanUtil.copyProperties(item, vo); - - vo.setCadViewFileId(cadViewFileId); - return vo; - }).toList(); + resultList = BeanUtil.copyToList(records, OrderViewPlatePageRespVO.class); } return resultList; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java index 3dbf74f81..e01bb6f04 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java @@ -811,7 +811,7 @@ public class PlateServiceImpl implements PlateService { @Override public PageResult getBodyViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) { - PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), null, false); return new PageResult<>(BeanUtil.copyToList(pageRes.getRecords(), OrderViewPlatePageRespVO.class), pageRes.getTotal()); @@ -844,7 +844,7 @@ public class PlateServiceImpl implements PlateService { Long cadViewFileId = orderBodyDO.getCadViewFileId(); // 查询所有板件的视图所需信息 - PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); + PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPlatesPage; Integer range = reqVO.getRange(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index 60d9ab212..003de59ce 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml @@ -539,6 +539,9 @@ , p.cad_view_id, p.seal_left, p.seal_down, p.seal_right, p.seal_up + + , i.comp_id + FROM order_item i LEFT JOIN `order_plate` p ON i.plate_id = p.id LEFT JOIN `order_goods` g ON g.id = p.goods_id