diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/Assert/AssertUtils.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/Assert/AssertUtils.java index baf71a9cd..90d6103bf 100644 --- a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/Assert/AssertUtils.java +++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/Assert/AssertUtils.java @@ -108,4 +108,10 @@ public class AssertUtils { throw new ServiceException(errorCode); } } + + public static void isTrue(boolean expression, ErrorCode errorCode, Object... params) { + if (expression) { + throw new ServiceException(errorCode, params); + } + } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApi.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApi.java new file mode 100644 index 000000000..6647bc48a --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApi.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.executor.api.ordercomponent; + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.api.ordercomponent.dto.OrderComponentListReqDTO; +import com.cf.imes.module.executor.api.ordercomponent.dto.OrderComponentListRespDTO; +import com.cf.imes.module.executor.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/2/25 16:06 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC 服务 - 部件管理") +public interface OrderComponentApi { + String PREFIX = ApiConstants.PREFIX + "/order/component"; + + @PostMapping(PREFIX + "/list") + @Operation(summary = "获取生产单下的部件列表") + CommonResult> getOrderComponentList(@RequestBody OrderComponentListReqDTO dto); +} \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListReqDTO.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListReqDTO.java new file mode 100644 index 000000000..c4e21045b --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListReqDTO.java @@ -0,0 +1,22 @@ +package com.cf.imes.module.executor.api.ordercomponent.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/2/25 16:18 + */ +@Schema(description = "RPC 服务 - 部件管理 - 生产单部件列表查询 - Request DTO") +@Data +public class OrderComponentListReqDTO implements Serializable { + private static final long serialVersionUID = -5691595836226548840L; + + @Schema(description = "生产单编号列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2,3,4]") + private List orderIds; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListRespDTO.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListRespDTO.java new file mode 100644 index 000000000..0695de4f7 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/ordercomponent/dto/OrderComponentListRespDTO.java @@ -0,0 +1,30 @@ +package com.cf.imes.module.executor.api.ordercomponent.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/2/25 16:18 + */ +@Schema(description = "RPC 服务 - 部件管理 - 生产单部件列表查询 - Response DTO") +@Data +public class OrderComponentListRespDTO implements Serializable { + private static final long serialVersionUID = -5691595836226548840L; + + @Schema(description = "父ID") + private Long pid; + + @Schema(description = "部件Id") + private Long id; + + @Schema(description = "部件名") + private String name; + + private List children; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApiImpl.java new file mode 100644 index 000000000..4374e9adf --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/ordercomponent/OrderComponentApiImpl.java @@ -0,0 +1,31 @@ +package com.cf.imes.module.executor.api.ordercomponent; + +import cn.hutool.core.bean.BeanUtil; +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.api.ordercomponent.dto.OrderComponentListReqDTO; +import com.cf.imes.module.executor.api.ordercomponent.dto.OrderComponentListRespDTO; +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentRespVO; +import com.cf.imes.module.executor.service.ordercomponent.OrderComponentService; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/2/25 16:26 + */ +@RestController // 提供 RESTful API 接口,给 Feign 调用 +public class OrderComponentApiImpl implements OrderComponentApi { + + @Resource + private OrderComponentService orderComponentService; + + @Override + public CommonResult> getOrderComponentList(OrderComponentListReqDTO dto) { + List orderComponentListOnOrders = orderComponentService.getOrderComponentListOnOrders(dto.getOrderIds()); + return CommonResult.success(BeanUtil.copyToList(orderComponentListOnOrders, OrderComponentListRespDTO.class)); + } +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java index 8f5f1b3a2..483b08acc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java @@ -22,4 +22,7 @@ public class OrderComponentRespVO { @Schema(description = "CAD图纸文件哈希值") private String fileHash; + + @Schema(description = "加工状态") + 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/plate/vo/OrderViewPlatePageRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java index 9f585bdb9..63b87647a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java @@ -66,4 +66,22 @@ public class OrderViewPlatePageRespVO { @Schema(description = "CAD设计板编号") private String customNumber; + + @Schema(description = "面积") + private BigDecimal area; + + @Schema(description = "纹理") + private Integer texture; + + @Schema(description = "是否造型") + private Boolean isSculpt; + + @Schema(description = "是否异形") + private Boolean isSpecialShaped; + + @Schema(description = "是否排孔") + private Boolean isRowHole; + + @Schema(description = "备注") + private String remark; } 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 194fac0cf..46da0d7ff 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 @@ -96,4 +96,34 @@ public class OrderBodyViewPlatesPageDO { * cad图纸文件id */ private Long cadViewFileId; + + /** + * 面积 + */ + private BigDecimal area; + + /** + * 纹理 + */ + private Integer texture; + + /** + * 是否造型 + */ + private Boolean isSculpt; + + /** + * 是否异形 + */ + private Boolean isSpecialShaped; + + /** + * 是否排孔 + */ + private Boolean isRowHole; + + /** + * 备注 + */ + private String remark; } 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 43f1fa423..4ba8a93b5 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 @@ -67,4 +67,12 @@ public interface OrderComponentService { * @param id */ void restoreOrderComponent(Long orderId, Long id); + + /** + * 查询订单列表下所有部件 + * + * @param orderIds + * @return + */ + List getOrderComponentListOnOrders(List orderIds); } \ No newline at end of file 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 947877c4b..06da8dcbf 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 @@ -256,9 +256,12 @@ public class OrderComponentServiceImpl implements OrderComponentService { .in(OrderComponentDO::getTopId, topIds) .eq(OrderComponentDO::getOrderId, orderId) .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.isDeleted()) - .select(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId)); + .select(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId, OrderComponentDO::getPid)); + Set queryComponentIds = new HashSet<>(); if (CollUtil.isNotEmpty(orderComponentDOS)) { - componentIds = orderComponentDOS.stream().map(OrderComponentDO::getId).collect(Collectors.toSet()); + for (OrderComponentDO co : componentDOS) { + queryComponentIds.addAll(getChildrenIds(co, orderComponentDOS)); + } } else { return Collections.emptyList(); } @@ -573,13 +576,13 @@ public class OrderComponentServiceImpl implements OrderComponentService { return needDeleteIds; } -// @Override -// public List getOrderComponentListOnOrders(List orderIds) { -// List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapper() -// .in(OrderComponentDO::getOrderId, orderIds) -// .eq(OrderComponentDO::getDeleted, false) -// .eq(OrderComponentDO::getOrganId, SecurityFrameworkUtils.getUserOrganId()) -// .select(OrderComponentDO::getId, OrderComponentDO::getName, OrderComponentDO::getPid)); -// return BeanUtil.copyToList(orderComponentDOS, OrderComponentRespVO.class); -// } + @Override + public List getOrderComponentListOnOrders(List orderIds) { + List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapper() + .in(OrderComponentDO::getOrderId, orderIds) + .eq(OrderComponentDO::getDeleted, false) + .eq(OrderComponentDO::getOrganId, SecurityFrameworkUtils.getUserOrganId()) + .select(OrderComponentDO::getId, OrderComponentDO::getName, OrderComponentDO::getPid)); + return BeanUtil.copyToList(orderComponentDOS, OrderComponentRespVO.class); + } } \ No newline at end of file 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 ccd096864..e27399d41 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 @@ -536,9 +536,14 @@