From 018a71003642d6cd17f07c92321599bdde1929cf Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 29 Jan 2026 09:55:01 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81get-module=E7=94=9F=E4=BA=A7=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=87=BA=E5=8F=82=E8=A7=84=E8=8C=83=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E6=96=B0=E5=A2=9Ecadview=E5=88=86=E9=A1=B5=E5=92=8Ci?= =?UTF-8?q?nfo=E6=8E=A5=E5=8F=A3=E5=9F=BA=E4=BA=8E=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=83=BD=E5=8A=9B=EF=BC=9B3=E3=80=81?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=83=A8=E4=BB=B6DB=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E3=80=81=E9=83=A8=E4=BB=B6=E6=A0=91=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/enums/ErrorCodeConstants.java | 3 + .../admin/order/OrderController.java | 2 +- .../vo/order/OrderCadViewPlatePageReqVO.java | 9 +- .../vo/order/OrderModuleDetailRespVO.java | 32 ++++ .../OrderComponentController.java | 33 ++++ .../vo/OrderComponentRespVO.java | 24 +++ .../vo/OrderComponentTreeRespVO.java | 24 +++ .../admin/plate/PlateController.java | 18 +-- .../admin/plate/vo/OrderCadViewPageGroup.java | 10 ++ ...pVO.java => OrderViewPlatePageRespVO.java} | 4 +- .../ordecomponent/OrderComponentDO.java | 96 +++++++++++ .../dal/dataobject/orderItem/OrderItemDO.java | 7 +- .../dal/mysql/orderItem/OrderItemMapper.java | 1 + .../ordercomponent/OrderComponentMapper.java | 26 +++ .../enums/OrderCadViewPlateRangeEnum.java | 3 +- .../executor/service/order/OrderService.java | 2 +- .../service/order/OrderServiceImpl.java | 18 ++- .../ordercomponent/OrderComponentService.java | 29 ++++ .../OrderComponentServiceImpl.java | 152 ++++++++++++++++++ .../executor/service/plate/PlateService.java | 10 +- .../service/plate/PlateServiceImpl.java | 99 ++++-------- .../mapper/orderItem/OrderItemMapper.xml | 3 + .../ordercomponent/OrderComponentMapper.xml | 14 ++ .../src/main/resources/message.properties | 6 +- .../src/main/resources/message_cht.properties | 6 +- .../src/main/resources/message_en.properties | 6 +- .../resources/message_errorcode.properties | 4 +- .../message_errorcode_cht.properties | 4 +- .../resources/message_errorcode_en.properties | 4 +- 29 files changed, 546 insertions(+), 103 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleDetailRespVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentTreeRespVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderCadViewPageGroup.java rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/{OrderBodyViewPlatePageRespVO.java => OrderViewPlatePageRespVO.java} (93%) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordecomponent/OrderComponentDO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java index 53c42f679..13f6807a9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java @@ -183,4 +183,7 @@ public class ErrorCodeConstants { public static final ErrorCode VENEER_IMPORT_ORG_CLASSIFICATION_NAME_NOT_EXIST = new ErrorCode(1_003_009_008, "veneer.import.org.classification.name.not.exist"); public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_EXIST = new ErrorCode(1_003_009_009, "veneer.org.classification.name.exist"); public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_EMPTY = new ErrorCode(1_003_009_010, "veneer.org.classification.name.empty"); + + //=========== 部件管理 1-003-010-000 ============ + public static final ErrorCode ORDER_COMPONENT_NOT_EXIST = new ErrorCode(1_003_010_000, "order.component.not.exist"); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java index 32a58bc1c..b7c8a98f4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java @@ -460,7 +460,7 @@ public class OrderController { @Parameter(name = "deleted", description = "是否删除", example = "false") }) @PreAuthorize("@ss.hasPermission('production:manager-list:detail')") - public CommonResult> getModule(@RequestParam("orderId") Long orderId, + public CommonResult getModule(@RequestParam("orderId") Long orderId, @RequestParam(value = "deleted", required = false, defaultValue = "false") Boolean deleted) { if (deleted == null) { deleted = false; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java index eaeaa1a4d..c70149eae 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java @@ -3,6 +3,7 @@ package com.cf.imes.module.executor.controller.admin.order.vo.order; import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.validation.InEnum; import com.cf.imes.module.executor.controller.admin.plate.vo.OrderCadViewInfoGroup; +import com.cf.imes.module.executor.controller.admin.plate.vo.OrderCadViewPageGroup; import com.cf.imes.module.executor.enums.OrderCadViewPlateRangeEnum; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; @@ -21,6 +22,7 @@ import lombok.ToString; public class OrderCadViewPlatePageReqVO extends PageParam { @Schema(description = "生产单号", example = "1024") + @NotNull(message = "{order.cadview.plate.page.orderid.not.null}",groups = {OrderCadViewPageGroup.class}) private Long orderId; @Schema(description = "房间编号", example = "1024") @@ -33,11 +35,14 @@ public class OrderCadViewPlatePageReqVO extends PageParam { private Long groupId; @Schema(description = "板件编号", example = "1024") - @NotNull(message = "板件编号不能为空", groups = OrderCadViewInfoGroup.class) + @NotNull(message = "{order.cadview.plate.cadinfo.plateno.not.null}", groups = OrderCadViewInfoGroup.class) private Long plateNo; + @Schema(description = "部件编号", example = "1024") + private Long componentId; + @Schema(description = "板件查询范围", example = "1") - @NotNull(message = "板件查询范围不能为空", groups = OrderCadViewInfoGroup.class) + @NotNull(message = "{order.cadview.plate.cadinfo.range.not.null}", groups = OrderCadViewInfoGroup.class) @InEnum(OrderCadViewPlateRangeEnum.class) private Integer range; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleDetailRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleDetailRespVO.java new file mode 100644 index 000000000..191af47ec --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleDetailRespVO.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.executor.controller.admin.order.vo.order; + +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/1/27 15:52 + */ +@Schema(description = "管理后台 - 生产单模块详情 Response VO") +@Data +public class OrderModuleDetailRespVO { + @Schema(description = "模块列表") + private List module; + + @Schema(description = "配件列表") + private List parts; + + @Schema(description = "板材列表") + private List goods; + + @Schema(description = "组件列表") + private List component; + + @Schema(description = "部件列表") + private List section; +} 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 new file mode 100644 index 000000000..1bd4a92ca --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/OrderComponentController.java @@ -0,0 +1,33 @@ +package com.cf.imes.module.executor.controller.admin.ordercomponent; + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.service.ordercomponent.OrderComponentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static com.cf.imes.framework.common.pojo.CommonResult.success; + +/** + * + * + * @author Gqr + * @since 2026/1/28 9:27 + */ +@Tag(name = "管理后台 - 生产单部件管理") +@RestController +@RequestMapping("/executor/order/component") +public class OrderComponentController { + @Resource + private OrderComponentService orderComponentService; + + @GetMapping("/tree/{componentId}") + @Operation(summary = "生产单详情部件树查询") + public CommonResult getTree(@PathVariable Long componentId) { + return success(orderComponentService.getOrderDetailComponentTree(componentId)); + } +} 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 new file mode 100644 index 000000000..abc5bf91f --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.ordercomponent.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 生产单部件列表 order component Response VO") +@Data +public class OrderComponentRespVO { + + @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20230414026120") + private Long orderId; + + @Schema(description = "房间Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long roomId; + + @Schema(description = "柜体Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long bodyId; + + @Schema(description = "部件Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long componentId; + + @Schema(description = "部件名", requiredMode = Schema.RequiredMode.REQUIRED) + private String componentName; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentTreeRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentTreeRespVO.java new file mode 100644 index 000000000..6e5fc7b35 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentTreeRespVO.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.ordercomponent.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Schema(description = "管理后台 - 生产单部件板件详情 - 部件树 order component Response VO") +@Data +public class OrderComponentTreeRespVO { + + @Schema(description = "部件id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "部件父id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Long pid; + + @Schema(description = "部件名", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + @Schema(description = "子节点") + private List children = new ArrayList<>(); +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java index bc0b82d41..b5071c4d8 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java @@ -58,10 +58,8 @@ public class PlateController { @DeleteMapping("/delete") @Operation(summary = "删除生产单板件") - @Parameters({ - @Parameter(name = "plateIds", description = "板材ID", required = true), - @Parameter(name = "planId", description = "排单ID", required = true) - }) + @Parameter(name = "plateIds", description = "板材ID", required = true) + @Parameter(name = "planId", description = "排单ID", required = true) @PreAuthorize("@ss.hasAnyPermissions('executor:plate:delete','placeorder:optimize')") public CommonResult deletePlate(@RequestParam("plateIds") @NotNull List plateIds, @RequestParam("planId") @NotNull Long planId) { @@ -139,15 +137,15 @@ public class PlateController { return success(plateService.createNewPlate(reqVO)); } - @GetMapping("/body/view/page") + @GetMapping("/view/page") @Operation(summary = "获取柜体下的板件视图分页列表数据") - public CommonResult> getBodyViewPlatesPage(@Valid OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { - return success(plateService.getBodyViewPlatesPage(orderCadViewPlatePageReqVO)); + public CommonResult> getBodyViewPlatesPage(@Validated(OrderCadViewPageGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { + return success(plateService.getViewPlatesPage(orderCadViewPlatePageReqVO)); } - @GetMapping("/body/view/cadinfo") + @GetMapping("/view/cadinfo") @Operation(summary = "获取板件对应柜体下的所有板件视图列表数据") - public CommonResult> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { - return success(plateService.getBodyViewPlatesCadInfo(orderCadViewPlatePageReqVO)); + public CommonResult> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { + return success(plateService.getViewPlatesCadInfo(orderCadViewPlatePageReqVO)); } } \ 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/controller/admin/plate/vo/OrderCadViewPageGroup.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderCadViewPageGroup.java new file mode 100644 index 000000000..6f046cb8b --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderCadViewPageGroup.java @@ -0,0 +1,10 @@ +package com.cf.imes.module.executor.controller.admin.plate.vo; + +/** + * cad视图分页请求校验组 + * + * @author Gqr + * @since 2025/12/30 9:58 + */ +public interface OrderCadViewPageGroup { +} \ 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/controller/admin/plate/vo/OrderBodyViewPlatePageRespVO.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 similarity index 93% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderBodyViewPlatePageRespVO.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java index bf2f63b3c..9f585bdb9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderBodyViewPlatePageRespVO.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 @@ -19,9 +19,9 @@ import java.math.BigDecimal; @Builder @AllArgsConstructor @NoArgsConstructor -@Schema(description = "管理后台 - 柜体对应的板件视图信息") +@Schema(description = "管理后台 - 板件视图信息") @JsonInclude(JsonInclude.Include.NON_NULL) -public class OrderBodyViewPlatePageRespVO { +public class OrderViewPlatePageRespVO { @Schema(description = "板件id") private Long id; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordecomponent/OrderComponentDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordecomponent/OrderComponentDO.java new file mode 100644 index 000000000..2b31eab55 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordecomponent/OrderComponentDO.java @@ -0,0 +1,96 @@ +package com.cf.imes.module.executor.dal.dataobject.ordecomponent; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 贴皮表 order_component_{N} DO + * + * @author Gqr + * @since 2026/1/27 14:00 + */ +@TableName(value = "order_component", autoResultMap = true) +@KeySequence("order_component_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrderComponentDO extends BaseDO { + public static final Long PARENT_ID_ROOT = 0L; + + /** + * 主键 + */ + private Long id; + + /** + * 订单id + */ + private Long orderId; + + /** + * 组织id + */ + private Long organId; + + /** + * 柜体id + */ + private Long bodyId; + + /** + * 房间id + */ + @TableField(exist = false) + private Long roomId; + + /** + * 父id + */ + private Long pid; + + /** + * 部件名称 + */ + private String name; + + /** + * 模块宽度 + */ + private Double width; + + /** + * 模块高度 + */ + private Double height; + + /** + * 模块深度 + */ + private Double depth; + + /** + * 规格 + */ + private String spec; + + /** + * cad图纸文件id + */ + private Long cadViewFileId; + + /** + * 备注 + */ + 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/OrderItemDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderItemDO.java index bb9a3ee8e..e2a262e44 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderItemDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderItemDO.java @@ -1,10 +1,7 @@ package com.cf.imes.module.executor.dal.dataobject.orderItem; -import com.cf.imes.framework.organ.core.db.OrganBaseDO; import lombok.*; -import java.util.*; import com.baomidou.mybatisplus.annotation.*; -import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; /** * 生产单明细表 order_item DO @@ -70,4 +67,8 @@ public class OrderItemDO { @TableField(fill = FieldFill.INSERT_UPDATE) private Long organId; + /** + * 部件id + */ + private Long compId; } \ 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/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 6d37dad3d..b78911501 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 @@ -202,5 +202,6 @@ public interface OrderItemMapper extends BaseMapperX { @Param("bodyId") Long bodyId, @Param("groupId") Long groupId, @Param("organId") Long organId, + @Param("componentId") Long componentId, @Param("cadView") boolean cadView); } \ 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/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 new file mode 100644 index 000000000..ce5aa7f07 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java @@ -0,0 +1,26 @@ +package com.cf.imes.module.executor.dal.mysql.ordercomponent; + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.executor.dal.dataobject.ordecomponent.OrderComponentDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 部件 Mapper + * + * @author Gqr + * @since 2026/1/27 14:08 + */ +@Mapper +public interface OrderComponentMapper extends BaseMapperX { + + /** + * 订单详情部件列表查询 + * + * @param orderId 生产单id + * @return + */ + List getOrderDetailComponentList(@Param("orderId") Long orderId); +} \ 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/enums/OrderCadViewPlateRangeEnum.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderCadViewPlateRangeEnum.java index aceb3e6ef..341303283 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderCadViewPlateRangeEnum.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderCadViewPlateRangeEnum.java @@ -17,7 +17,8 @@ import java.util.Arrays; public enum OrderCadViewPlateRangeEnum implements IntArrayValuable { BODY(0), GROUP(1), - GROUP_WITH_BODY(2); + GROUP_WITH_BODY(2), + COMPONENT(3); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(OrderCadViewPlateRangeEnum::getRange).toArray(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java index 8381f3676..2445f74fd 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java @@ -71,7 +71,7 @@ public interface OrderService { * @param orderId: 生产单Id * @return Map */ - Map getModule(Long orderId, Integer deleted); + OrderModuleDetailRespVO getModule(Long orderId, Integer deleted); /** * @param orderId: 生产单id 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 1c321d257..a858f7afb 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 @@ -68,6 +68,7 @@ import com.cf.imes.module.executor.enums.OrderStatusEnum; import com.cf.imes.module.executor.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.executor.service.orderImport.OrderImportHandler; import com.cf.imes.module.executor.service.orderImport.factory.OrderImportHandlerFactory; +import com.cf.imes.module.executor.service.ordercomponent.OrderComponentService; import com.cf.imes.module.executor.service.plan.PlanService; import com.cf.imes.module.executor.util.deviseData.structure.FieldConstants; import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail; @@ -171,6 +172,8 @@ public class OrderServiceImpl implements OrderService { @Resource private EsUtils esUtils; + @Resource + private OrderComponentService orderComponentService; private static final String SUBMIT_STATE = "1"; // 空订单 原生产系统 @@ -276,7 +279,7 @@ public class OrderServiceImpl implements OrderService { } @Override - public Map getModule(Long orderId, Integer deleted) { + public OrderModuleDetailRespVO getModule(Long orderId, Integer deleted) { // 柜体信息 List orderModuleRespVOList = orderBodyMapper.selectModuleByOrderId(orderId, getUserOrganId(), deleted); @@ -294,12 +297,13 @@ public class OrderServiceImpl implements OrderService { types.add(CategoryEnum.ASSEMBLY.getValue()); List orderComponentRespVOS = orderItemMapper.selectPartsByOrderId(orderId, getUserOrganId(), deleted, types); - Map map = new HashMap<>(); - map.put("module", orderModuleRespVOList); - map.put("parts", orderItemDOS); - map.put("goods", orderGoodsRespVOS); - map.put("component", orderComponentRespVOS); - return map; + OrderModuleDetailRespVO orderModuleDetailRespVO = new OrderModuleDetailRespVO(); + orderModuleDetailRespVO.setModule(orderModuleRespVOList); + orderModuleDetailRespVO.setParts(orderItemDOS); + orderModuleDetailRespVO.setGoods(orderGoodsRespVOS); + orderModuleDetailRespVO.setComponent(orderComponentRespVOS); + orderModuleDetailRespVO.setSection(orderComponentService.getOrderComponentList(orderId)); + return orderModuleDetailRespVO; } @Override 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 new file mode 100644 index 000000000..f18a79c31 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentService.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.executor.service.ordercomponent; + +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentRespVO; +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentTreeRespVO; + +import java.util.List; + +/** + * 订单部件服务 Service + * + * @author Gqr + * @since 2026/1/27 14:32 + */ +public interface OrderComponentService { + /** + * 查询订单部件列表 + * + * @param orderId 生产单id + * @return + */ + List getOrderComponentList(Long orderId); + + /** + * 查询部件树 + * + * @return + */ + List getOrderDetailComponentTree(Long componentId); +} \ 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 new file mode 100644 index 000000000..6c69d34a9 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/ordercomponent/OrderComponentServiceImpl.java @@ -0,0 +1,152 @@ +package com.cf.imes.module.executor.service.ordercomponent; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.cf.imes.framework.common.exception.ServiceException; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentRespVO; +import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentTreeRespVO; +import com.cf.imes.module.executor.dal.dataobject.ordecomponent.OrderComponentDO; +import com.cf.imes.module.executor.dal.mysql.ordercomponent.OrderComponentMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static com.cf.imes.module.executor.dal.dataobject.ordecomponent.OrderComponentDO.PARENT_ID_ROOT; +import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_COMPONENT_NOT_EXIST; + +/** + * 订单部件服务实现类 ServiceImpl + * + * @author Gqr + * @since 2026/1/27 14:33 + */ +@Service +@Slf4j +public class OrderComponentServiceImpl implements OrderComponentService { + @Resource + private OrderComponentMapper orderComponentMapper; + + @Override + public List getOrderComponentList(Long orderId) { + List resultList = new ArrayList<>(); + List orderComponentDOS = orderComponentMapper.getOrderDetailComponentList(orderId); + if (CollUtil.isNotEmpty(orderComponentDOS)) { + for (OrderComponentDO componentDO : orderComponentDOS) { + OrderComponentRespVO orderComponentRespVO = new OrderComponentRespVO(); + orderComponentRespVO.setOrderId(orderId); + orderComponentRespVO.setRoomId(componentDO.getRoomId()); + orderComponentRespVO.setBodyId(componentDO.getBodyId()); + orderComponentRespVO.setComponentId(componentDO.getId()); + orderComponentRespVO.setComponentName(componentDO.getName()); + resultList.add(orderComponentRespVO); + } + } + return resultList; + } + + @Override + public List getOrderDetailComponentTree(Long componentId) { + // 1. 查询本身和所有非顶级节点 + OrderComponentDO componentDO = orderComponentMapper.selectById(componentId); + if (ObjectUtil.isNull(componentDO)) { + throw new ServiceException(ORDER_COMPONENT_NOT_EXIST); + } + + List orderComponentDOS = orderComponentMapper.selectList( + new LambdaQueryWrapperX() + .and(wr -> + wr.or(wrapper -> wrapper.ne(OrderComponentDO::getPid, PARENT_ID_ROOT)) + .or(wrapper -> wrapper.eq(OrderComponentDO::getId, componentId))) + .select(OrderComponentDO::getId, OrderComponentDO::getPid, OrderComponentDO::getName)); + + // 2. 如果 DB 本身就没数据,直接返回 componentId 本身 + if (orderComponentDOS.isEmpty()) { + return Collections.singletonList(buildSelfNode(componentDO)); + } + + // 3. DO -> Tree VO + Map nodeMap = new HashMap<>(orderComponentDOS.size()); + for (OrderComponentDO doObj : orderComponentDOS) { + OrderComponentTreeRespVO vo = new OrderComponentTreeRespVO(); + vo.setId(doObj.getId()); + vo.setPid(doObj.getPid()); + vo.setName(doObj.getName()); + vo.setChildren(new ArrayList<>()); + nodeMap.put(vo.getId(), vo); + } + + // 4. 建立父子关系 + for (OrderComponentTreeRespVO node : nodeMap.values()) { + OrderComponentTreeRespVO parent = nodeMap.get(node.getPid()); + if (parent != null) { + parent.getChildren().add(node); + } + } + + // 5. 尝试找到 componentId 对应的节点 + OrderComponentTreeRespVO root = nodeMap.get(componentId); + + // 6. 找不到节点:只返回 componentId 自身 + if (root == null) { + return Collections.singletonList(buildSelfNode(componentDO)); + } + + // 7. 找到节点但没有下级:只返回自己 + if (root.getChildren().isEmpty()) { + return Collections.singletonList(buildSelfNode(componentDO)); + } + + // 8. 正常情况:返回 componentId + 子树 + pruneTree(root, new HashSet<>()); + return Collections.singletonList(root); + } + + /** + * 清理可能存在的重复子节点 + * + * @param node 顶级节点 + * @param path 记录已经访问过的节点 + */ + private void pruneTree(OrderComponentTreeRespVO node, Set path) { + // 防止 pid 循环 + if (!path.add(node.getId())) { + node.getChildren().clear(); + return; + } + + List children = node.getChildren(); + if (children == null || children.isEmpty()) { + return; + } + + for (OrderComponentTreeRespVO child : children) { + pruneTree(child, path); + } + + path.remove(node.getId()); + } + + /** + * 构建部件自身的顶级树节点 + * + * @param componentDO + * @return + */ + private OrderComponentTreeRespVO buildSelfNode(OrderComponentDO componentDO) { + OrderComponentTreeRespVO vo = new OrderComponentTreeRespVO(); + vo.setId(componentDO.getId()); + vo.setPid(PARENT_ID_ROOT); + vo.setName(componentDO.getName()); + vo.setChildren(Collections.emptyList()); + return vo; + } +} \ 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/plate/PlateService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java index e6b3666ef..afdcd4301 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java @@ -96,18 +96,18 @@ public interface PlateService { List createNewPlate(List reqVO); /** - * 获取柜体板件视图分页列表 + * 获取板件视图分页列表 * * @param orderBodyPageRespVO * @return */ - PageResult getBodyViewPlatesPage(OrderCadViewPlatePageReqVO orderBodyPageRespVO); + PageResult getViewPlatesPage(OrderCadViewPlatePageReqVO orderBodyPageRespVO); /** - * 根据板件id获取柜体下的所有板件cad视图所需信息 + * 根据板件id获取所有板件cad视图所需信息 * - * @param plateId + * @param orderBodyPageRespVO * @return */ - List getBodyViewPlatesCadInfo(OrderCadViewPlatePageReqVO orderBodyPageRespVO); + List getViewPlatesCadInfo(OrderCadViewPlatePageReqVO orderBodyPageRespVO); } \ 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/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 14c0d6e72..2fe1e84ad 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 @@ -149,7 +149,7 @@ public class PlateServiceImpl implements PlateService { AssertUtils.notEmpty(planDO, ORDER_PLAN_DATE_ERROR); - List plateDOS = plateMapper.selectBatchIds(plateIds); + List plateDOS = plateMapper.selectByIds(plateIds); AssertUtils.notEmpty(plateDOS, REMAIN_PLATE_NOT_EXISTS); @@ -178,7 +178,7 @@ public class PlateServiceImpl implements PlateService { List bodyIds = orderItemDOS.stream().map(OrderItemDO::getBodyId).distinct().toList(); - List orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds); + List orderBodyDOS = orderBodyMapper.selectByIds(bodyIds); orderBodyDOS.forEach(f -> { int plateNum = orderItemDOS.stream().filter(o -> f.getId().equals(o.getBodyId())).toList().size(); @@ -189,7 +189,7 @@ public class PlateServiceImpl implements PlateService { orderBodyMapper.updateBatch(orderBodyDOS); // 删除小板ID - plateMapper.deleteBatchIds(plateIdList); + plateMapper.deleteByIds(plateIdList); // 删除小板明细信息 orderItemMapper.deleteByPlateId(plateIdList, orderIds, getUserOrganId()); @@ -197,7 +197,7 @@ public class PlateServiceImpl implements PlateService { // 删除添加自增板时新增的大板ID List orderGoodsIdList = goodsMapper.selectInsertGoodsIds(orderIds, goodsIds, getUserOrganId()); if (CollUtil.isNotEmpty(orderGoodsIdList)) { - goodsMapper.deleteBatchIds(orderGoodsIdList); + goodsMapper.deleteByIds(orderGoodsIdList); } // 统计更新板件数量和面积 @@ -274,31 +274,6 @@ public class PlateServiceImpl implements PlateService { } } - /** - * 拆分list,每个1000条 - * - * @param dataList - * @param - * @return - */ - private List> batchProcess(List dataList) { - List> resultList = new ArrayList<>(); - if (CollUtil.isEmpty(dataList)) { - return resultList; - } - - int total = dataList.size(); - for (int i = 0; i < total; i += 1000) { - int end = Math.min(i + 1000, total); - List subList = dataList.subList(i, end); - - if (!subList.isEmpty()) { - resultList.add(subList); - } - } - return resultList; - } - private void validatePlateExists(Long id) { if (plateMapper.selectById(id) == null) { throw new ServiceException(REMAIN_PLATE_NOT_EXISTS); @@ -436,12 +411,12 @@ public class PlateServiceImpl implements PlateService { if (CollUtil.isEmpty(importPlates)) { throw new ServiceException(RAW_GOODS_IMPORT_LIST_IS_EMPTY); } - PlateImportRespVO respVO = PlateImportRespVO.builder().createPlates(new ArrayList()) + PlateImportRespVO respVO = PlateImportRespVO.builder().createPlates(new ArrayList<>()) .updatePlates(new ArrayList<>()).failurePlates(new LinkedHashMap<>()).build(); importPlates.forEach(plateSaveReqVO -> { try { // 改成plateMapper.insertBatch() - Long id = (long) plateMapper.insert(BeanUtils.toBean(plateSaveReqVO, PlateDO.class) + plateMapper.insert(BeanUtils.toBean(plateSaveReqVO, PlateDO.class) .setOrderId(orderId)); respVO.getCreatePlates().add(plateSaveReqVO); } catch (ServiceException ex) { @@ -454,32 +429,25 @@ public class PlateServiceImpl implements PlateService { @Override @Transactional(rollbackFor = Exception.class) public void deletePlates(Set ids) { - plateMapper.deleteBatchIds(ids); + plateMapper.deleteByIds(ids); } @Override public List getPlatesByOrderId(Long orderId) { - List plates = plateMapper.selectList(new LambdaQueryWrapper().eq(PlateDO::getOrderId, orderId)); - return plates; + return plateMapper.selectList(new LambdaQueryWrapper().eq(PlateDO::getOrderId, orderId)); } @Override public PageResult getPlatePageByTerms(PlateTermsPageReqVO pageReqVO) { PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageRes = plateMapper.selectProductList(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), getUserOrganId()); - return new PageResult(pageRes.getRecords(), pageRes.getTotal()); + return new PageResult<>(pageRes.getRecords(), pageRes.getTotal()); } @Override public void updatePlateByRawGoodsId(List createReqVOS) { // 根据生产单id和goods_id查到数据,再更新goods_id createReqVOS.forEach(createReqVO -> { -// plateMapper.update(null, -// new LambdaQueryWrapper() -// .eq(PlateDO::getGoodsId, createReqVO.getRawGoodsId()) -// .eq(PlateDO::getOrderId, createReqVO.getOrderId()) -// .set(PlateDO::getGoodsId, createReqVO.getGoodsId() -// ); }); @@ -496,21 +464,16 @@ public class PlateServiceImpl implements PlateService { .in(OrderItemDO::getBodyId, bodyIds) .select(OrderItemDO::getBodyId) ); - List plateIds = list.stream().map(BodyPlateIdDTO::getPlateId).collect(Collectors.toList()); + List plateIds = list.stream().map(BodyPlateIdDTO::getPlateId).toList(); List orderModelDOS = buildRespByPlateIds(plateIds, ORDER_PLATE_MODEL.getIndex()); - Map> map = orderModelDOS.stream().collect(Collectors.groupingBy(e -> { - return list.stream().filter(f -> Objects.equals(f.getPlateId(), e.getPlateId())).map(BodyPlateIdDTO::getBodyId).findAny().orElse(null); - })); + Map> map = orderModelDOS.stream().collect(Collectors.groupingBy(e -> list.stream().filter(f -> Objects.equals(f.getPlateId(), e.getPlateId())).map(BodyPlateIdDTO::getBodyId).findAny().orElse(null))); List bodyPlateDetailVOS = new ArrayList<>(); - List>> data = new ArrayList<>(); - map.entrySet().forEach(e -> { - bodyPlateDetailVOS.add(BodyPlateDetailVO.builder() - .orderModelList(e.getValue()) - .bodyId(e.getKey()) - .build() - ); - }); + map.entrySet().forEach(e -> bodyPlateDetailVOS.add(BodyPlateDetailVO.builder() + .orderModelList(e.getValue()) + .bodyId(e.getKey()) + .build() + )); return bodyPlateDetailVOS; } @@ -539,7 +502,7 @@ public class PlateServiceImpl implements PlateService { // 查询排单下的orderGoodsId列表 List goodsId = planMapper.selectPlanOrderGoodsId(planId, orderIds, getUserOrganId()); - List goodsDOS = goodsMapper.selectBatchIds(goodsId); + List goodsDOS = goodsMapper.selectByIds(goodsId); Map orderPlanPlateNumAndAreaRespVOMap = new HashMap<>(); @@ -642,7 +605,7 @@ public class PlateServiceImpl implements PlateService { List bodyIds = numVOS.stream().map(OrderBodyNumVO::getBodyId).toList(); - List orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds); + List orderBodyDOS = orderBodyMapper.selectByIds(bodyIds); orderBodyDOS.forEach(f -> { @@ -754,7 +717,7 @@ public class PlateServiceImpl implements PlateService { SearchResponse search = elasticsearchClient.search(builder.build(), OrderModelDO.class); List> hits = search.hits().hits(); if (CollUtil.isNotEmpty(hits)) { - return hits.stream().map(Hit::source).collect(Collectors.toList()); + return hits.stream().map(Hit::source).toList(); } return new ArrayList<>(); } catch (IOException e) { @@ -847,14 +810,15 @@ public class PlateServiceImpl implements PlateService { } @Override - public PageResult getBodyViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) { + public PageResult getViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) { PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), false); - return new PageResult(BeanUtil.copyToList(pageRes.getRecords(), OrderBodyViewPlatePageRespVO.class), pageRes.getTotal()); + IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), + pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), pageReqVO.getComponentId(), false); + return new PageResult<>(BeanUtil.copyToList(pageRes.getRecords(), OrderViewPlatePageRespVO.class), pageRes.getTotal()); } @Override - public List getBodyViewPlatesCadInfo(OrderCadViewPlatePageReqVO reqVO) { + public List getViewPlatesCadInfo(OrderCadViewPlatePageReqVO reqVO) { Long plateId = reqVO.getPlateNo(); // 匹配板材 PlateDO plateDO = plateMapper.selectById(plateId); @@ -885,21 +849,26 @@ public class PlateServiceImpl implements PlateService { Integer range = reqVO.getRange(); if (OrderCadViewPlateRangeEnum.BODY.getRange().equals(range)) { - viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), orderItemDO.getBodyId(), null, orderItemDO.getOrganId(), true); + viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), + orderItemDO.getBodyId(), null, orderItemDO.getOrganId(), null,true); + } else if (OrderCadViewPlateRangeEnum.COMPONENT.getRange().equals(range)) { + viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), null, + null, null, orderItemDO.getOrganId(), orderItemDO.getCompId(), true); } else { - viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), orderItemDO.getBodyId(), orderItemDO.getGroupId(), orderItemDO.getOrganId(), true); + viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), + orderItemDO.getBodyId(), orderItemDO.getGroupId(), orderItemDO.getOrganId(), null, true); } List records = viewPlatesPage.getRecords(); - List resultList = new ArrayList<>(); + List resultList = new ArrayList<>(); if (CollUtil.isNotEmpty(records)) { resultList = records.stream().map(item -> { - OrderBodyViewPlatePageRespVO vo = new OrderBodyViewPlatePageRespVO(); + OrderViewPlatePageRespVO vo = new OrderViewPlatePageRespVO(); BeanUtil.copyProperties(item, vo); vo.setCadViewFileId(cadViewFileId); return vo; - }).collect(Collectors.toList()); + }).toList(); } return resultList; } 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 f2b8f332f..5fa77c2c5 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 @@ -552,5 +552,8 @@ AND i.group_id = #{groupId} + + AND i.comp_id = #{componentId} + \ No newline at end of file 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 new file mode 100644 index 000000000..be1e7158a --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message.properties index e19b7d112..e03cbd1c3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message.properties @@ -17,4 +17,8 @@ veneer.save.veneerName.not.null=贴皮名称不能为空 veneer.save.veneerName.length.max=贴皮名称不能超过64个字符 veneer.defect.save.id.not.null=贴皮ID不能为空 veneer.classification.name.save.name.not.null=分类名称不能为空 -veneer.classification.name.save.name.length.max=分类名称长度不能超过64 \ No newline at end of file +veneer.classification.name.save.name.length.max=分类名称长度不能超过64 + +order.cadview.plate.cadinfo.range.not.null=板件查询范围不能为空 +order.cadview.plate.cadinfo.plateno.not.null=板件编号不能为空 +order.cadview.plate.page.orderid.not.null=订单编号不能为空 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_cht.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_cht.properties index dd9b18351..bfad5ed71 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_cht.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_cht.properties @@ -17,4 +17,8 @@ veneer.save.veneerName.not.null=貼皮名稱不能為空 veneer.save.veneerName.length.max=貼皮名稱不能超过64个字元 veneer.defect.save.id.not.null=貼皮ID不能為空 veneer.classification.name.save.name.not.null=分類名稱不能為空 -veneer.classification.name.save.name.length.max=分類名稱不能超過64個字元 \ No newline at end of file +veneer.classification.name.save.name.length.max=分類名稱不能超過64個字元 + +order.cadview.plate.cadinfo.range.invalid=板件查詢範圍不能為空 +order.cadview.plate.cadinfo.plateno.not.null=板件編號不能為空 +order.cadview.plate.page.orderid.not.null=訂單編號不能為空 \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_en.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_en.properties index bbe6fddbd..b4ce27c12 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_en.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_en.properties @@ -17,4 +17,8 @@ veneer.save.veneerName.not.null=veneer name cannot be empty veneer.save.veneerName.length.max=veneer name length cannot exceed 64 characters veneer.defect.save.id.not.null=veneer id cannot be empty veneer.classification.name.save.name.not.null=classification name cannot be empty -veneer.classification.name.save.name.length.max=classification name length cannot exceed 64 characters \ No newline at end of file +veneer.classification.name.save.name.length.max=classification name length cannot exceed 64 characters + +order.cadview.plate.cadinfo.range.invalid=range cannot be empty +order.cadview.plate.cadinfo.plateno.not.null=plate no cannot be empty +order.cadview.plate.page.orderid.not.null=order id cannot be empty \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode.properties index 8a52ec963..9fe4fbfb6 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode.properties @@ -24,4 +24,6 @@ veneer.import.number.length.error=第{0}行{1}长度不能超过整数{2}位、 veneer.org.classification.name.exist=组织下分类名称已存在,请检查 veneer.org.classification.name.empty=组织下分类名称不存在,请前往 [新增] 窗口维护分类名称 veneer.import.template.download.error=导入模版下载失败 -veneer.import.org.classification.name.not.exist=第{0}行分类名称{1}不存在,请前往 [新增] 窗口维护分类名称 \ No newline at end of file +veneer.import.org.classification.name.not.exist=第{0}行分类名称{1}不存在,请前往 [新增] 窗口维护分类名称 + +order.component.not.exist=订单部件不存在 \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_cht.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_cht.properties index 7665ecb11..96a3a6d37 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_cht.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_cht.properties @@ -24,4 +24,6 @@ veneer.import.number.length.error=第{0}行{1}長度不能超過整數{2}位、 veneer.org.classification.name.exist=組織下分類名稱已存在,請檢查 veneer.org.classification.name.empty=組織下分類名稱不存在,請前往 [新增] 視窗維護分類名稱 veneer.import.template.download.error=導入模版下載失敗 -veneer.import.org.classification.name.not.exist=第{0}行分類名稱{1}不存在,請前往[新增]視窗維護分類名稱 \ No newline at end of file +veneer.import.org.classification.name.not.exist=第{0}行分類名稱{1}不存在,請前往[新增]視窗維護分類名稱 + +order.component.not.exist=訂單部件不存在 \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_en.properties b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_en.properties index 4905eb39c..81f256bc1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_en.properties +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/message_errorcode_en.properties @@ -24,4 +24,6 @@ veneer.import.number.length.error=The length of the field cannot exceed integer veneer.org.classification.name.exist=The classification name already exists under the organization, please check veneer.org.classification.name.empty=The classification name does not exist under the organization, Please go to the [Add] window to maintain the classification name veneer.import.template.download.error=Import template download failed -veneer.import.org.classification.name.not.exist=The classification name {1} does not exist in line {0}, please go to the [Add] window to maintain the classification name \ No newline at end of file +veneer.import.org.classification.name.not.exist=The classification name {1} does not exist in line {0}, please go to the [Add] window to maintain the classification name + +order.component.not.exist=The order component does not exist \ No newline at end of file