From b78db43c4359311fef9aeab1408451b711b0d1c9 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 2 Jun 2026 15:44:59 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=A6=85=E9=81=93bug#1589=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=9B2=E3=80=81=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E3=80=81=E6=9C=AA=E6=8E=92=E5=B7=B2=E6=8E=92=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E3=80=81=E6=B7=BB=E5=8A=A0=E5=B0=8F=E6=9D=BF=E3=80=81?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E4=BC=98=E5=8C=96=E7=AD=89=E6=9D=BF=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AD=97=E6=AE=B5=E8=A1=A5=E5=85=85=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/plan/PlanController.java | 15 +- .../admin/plan/vo/PlateDetailRespVO.java | 31 ++- .../admin/plan/vo/PlateResList.java | 27 +++ .../admin/plate/PlateController.java | 4 +- .../admin/plate/vo/NoPlanPlateRespVO.java | 31 +++ .../plate/vo/OrderViewPlatePageRespVO.java | 15 ++ .../orderItem/OrdersViewPlatesPageDO.java | 20 ++ .../dal/dataobject/plate/PlateDetailDO.java | 52 ++++- .../dal/mysql/orderItem/OrderItemMapper.java | 6 +- .../dal/mysql/planitem/PlanItemMapper.java | 4 - .../executor/dal/mysql/plate/PlateMapper.java | 8 + .../assemblylist/AssemblyListServiceImpl.java | 4 +- .../optimizeplan/OptimizePlanServiceImpl.java | 20 +- .../OrderComponentServiceImpl.java | 7 +- .../executor/service/plan/PlanService.java | 10 +- .../service/plan/PlanServiceImpl.java | 210 +++++++++++++++--- .../executor/service/plate/PlateService.java | 3 +- .../service/plate/PlateServiceImpl.java | 49 +++- .../mapper/orderItem/OrderItemMapper.xml | 29 ++- .../mapper/planitem/PlanItemMapper.xml | 88 -------- .../resources/mapper/plate/PlateMapper.xml | 103 ++++++++- 21 files changed, 541 insertions(+), 195 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/NoPlanPlateRespVO.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java index 9bb1faa3c..de0ff1900 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java @@ -11,6 +11,7 @@ import com.cf.imes.framework.operatelog.core.annotations.OperateLog; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; import com.cf.imes.module.executor.controller.admin.plan.vo.*; +import com.cf.imes.module.executor.controller.admin.plate.vo.OrderViewPlatePageRespVO; import com.cf.imes.module.executor.service.plan.PlanService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -78,7 +79,7 @@ public class PlanController { @GetMapping("getPlateByPlanId") @Operation(summary = "根据排单id获取小板分页") @PreAuthorize("@ss.hasAnyPermissions('placeorder:query','producePlan:query')") - public CommonResult> getPlateByPlanId(@Valid GetPlateByPlanIdVO vo) { + public CommonResult> getPlateByPlanId(@Valid GetPlateByPlanIdVO vo) { return success(planService.getPlateByPlanId(vo)); } @@ -150,18 +151,6 @@ public class PlanController { BeanUtils.toBean(list, PlanRespVO.class)); } - @GetMapping("/export-plate-excel") - @Operation(summary = "导出板材 Excel") - @PreAuthorize("@ss.hasPermission('executor:plan:export')") - @OperateLog(type = EXPORT) - public void exportPlateExcel(@Valid GetPlateByPlanIdVO vo, - HttpServletResponse response) throws IOException { - PageResult plateByPlanId = planService.getPlateByPlanId(vo); - // 导出 Excel - ExcelUtils.write(response, "排单板材.xls", "数据", PlateResList.class, - BeanUtils.toBean(plateByPlanId.getList(), PlateResList.class)); - } - @GetMapping("getPlateList") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateDetailRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateDetailRespVO.java index ca8e700da..a5710994f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateDetailRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateDetailRespVO.java @@ -1,13 +1,10 @@ package com.cf.imes.module.executor.controller.admin.plan.vo; - -import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; -import java.util.List; @Schema(description = "管理后台 - 订单板件 Response VO") @Data @@ -215,8 +212,30 @@ public class PlateDetailRespVO { @Schema(description = "是否侧面二维刀路") private Boolean isSide2v; + @Schema(description = "部件名称") + private String componentName; - // 加工组ID和名称 - @Schema(description = "加工组名称", requiredMode = Schema.RequiredMode.REQUIRED) - private List processGroupLists; + @Schema(description = "是否双面造型") + private Boolean doubleSideModel; + + @Schema(description = "是否双面排孔") + private Boolean doubleSideHole; + + @Schema(description = "是否正面造型") + private Boolean frontModel; + + @Schema(description = "是否侧面造型") + private Boolean backModel; + + @Schema(description = "是否正面排孔") + private Boolean frontHole; + + @Schema(description = "是否反面排孔") + private Boolean backHole; + + @Schema(description = "是否侧面造型") + private Boolean sideModel; + + @Schema(description = "是否侧面排孔") + private Boolean sideHole; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java index b779e038d..796638151 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java @@ -79,4 +79,31 @@ public class PlateResList { @Schema(description = "开料序") private Integer placeId; + @Schema(description = "部件名称") + private String componentName; + + @Schema(description = "是否双面造型") + private Boolean doubleSideModel; + + @Schema(description = "是否双面排孔") + private Boolean doubleSideHole; + + @Schema(description = "是否正面造型") + private Boolean frontModel; + + @Schema(description = "是否侧面造型") + private Boolean backModel; + + @Schema(description = "是否正面排孔") + private Boolean frontHole; + + @Schema(description = "是否反面排孔") + private Boolean backHole; + + @Schema(description = "是否侧面造型") + private Boolean sideModel; + + @Schema(description = "是否侧面排孔") + private Boolean sideHole; + } 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 9c8e6870a..6a359fdf6 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 @@ -8,7 +8,6 @@ import com.cf.imes.framework.excel.core.util.ExcelUtils; import com.cf.imes.framework.operatelog.core.annotations.OperateLog; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderCadViewPlatePageReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrdersViewCadViewInfoRespVO; -import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetailRespVO; import com.cf.imes.module.executor.controller.admin.plate.vo.*; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; @@ -77,11 +76,10 @@ public class PlateController { } - @PostMapping("/orders/noplan") @Operation(summary = "获取未排单的订单板件") @PreAuthorize("@ss.hasAnyPermissions('manage:un-order-plan:insert-plate','manage:order-plan:insert-plate')") - public CommonResult> getOrdersNoPlanPlate(@Valid @RequestBody NoPlanPlatePageReqVO reqVO) { + public CommonResult getOrdersNoPlanPlate(@Valid @RequestBody NoPlanPlatePageReqVO reqVO) { return success(plateService.getOrdersNoPlanPlate(reqVO)); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/NoPlanPlateRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/NoPlanPlateRespVO.java new file mode 100644 index 000000000..b03cd4d3c --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/NoPlanPlateRespVO.java @@ -0,0 +1,31 @@ +package com.cf.imes.module.executor.controller.admin.plate.vo; + +import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetailRespVO; +import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * + * + * @author Gqr + * @since 2026/6/2 15:13 + */ +@Schema(description = "未排单板件信息和造型信息") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class NoPlanPlateRespVO { + @Schema(description = "小板列表") + private List plateList; + + + @Schema(description = "小板造型列表") + private List plateModels; +} 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 65a18e0d6..bc48b850c 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 @@ -25,6 +25,9 @@ public class OrderViewPlatePageRespVO { @Schema(description = "板件id") private Long id; + @Schema(description = "订单id") + private Long orderId; + @Schema(description = "板件编号") private String plateNo; @@ -34,6 +37,9 @@ public class OrderViewPlatePageRespVO { @Schema(description = "板件名称") private String name; + @Schema(description = "板材名称") + private String goodsName; + @Schema(description = "板件宽度") private BigDecimal width; @@ -43,6 +49,12 @@ public class OrderViewPlatePageRespVO { @Schema(description = "板件厚度") private BigDecimal thickness; + @Schema(description = "开料长") + private BigDecimal splitHeight; + + @Schema(description = "开料宽") + private BigDecimal splitWidth; + @Schema(description = "板件CAD图纸ID") private Integer cadViewId; @@ -135,4 +147,7 @@ public class OrderViewPlatePageRespVO { @Schema(description = "是否侧面二维刀路") private Boolean isSide2v; + + @Schema(description = "品牌") + private String brand; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java index 549403685..fbf0560a5 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java @@ -17,6 +17,11 @@ public class OrdersViewPlatesPageDO { */ private Long id; + /** + * 订单号 + */ + private Long orderId; + /** * 板编号 */ @@ -27,6 +32,11 @@ public class OrdersViewPlatesPageDO { */ private String name; + /** + * 板材名称 + */ + private String goodsName; + /** * 板件宽度 */ @@ -42,6 +52,16 @@ public class OrdersViewPlatesPageDO { */ private BigDecimal thickness; + /** + * 开料长 + */ + private BigDecimal splitHeight; + + /** + * 开料宽 + */ + private BigDecimal splitWidth; + /** * 板件CAD图纸ID */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateDetailDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateDetailDO.java index e89ba9fe6..fb8bb3ff6 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateDetailDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateDetailDO.java @@ -1,10 +1,8 @@ package com.cf.imes.module.executor.dal.dataobject.plate; -import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList; import lombok.Data; import java.math.BigDecimal; -import java.util.List; /** * 板件明细 @@ -70,6 +68,11 @@ public class PlateDetailDO { */ private String customPlateNo; + /** + * cad设计板编号 + */ + private String customNumber; + /** * 板名称 */ @@ -245,6 +248,11 @@ public class PlateDetailDO { */ private String processGroupName; + /** + * 部件名称 + */ + private String componentName; + /** * 开门类型,0 无 1 左 2 右 3 上 4 下 */ @@ -279,4 +287,44 @@ public class PlateDetailDO { * 造型数据 */ private String modelData; + + /** + * 是否双面造型 + */ + private Boolean doubleSideModel; + + /** + * 是否双面排孔 + */ + private Boolean doubleSideHole; + + /** + * 是否正面造型 + */ + private Boolean frontModel; + + /** + * 是否侧面造型 + */ + private Boolean backModel; + + /** + * 正面排孔 + */ + private Boolean frontHole; + + /** + * 反面排孔 + */ + private Boolean backHole; + + /** + * 是否侧面造型 + */ + private Boolean sideModel; + + /** + * 是否侧面排孔 + */ + private Boolean sideHole; } \ 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 fde022d76..16752970b 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 @@ -216,7 +216,8 @@ public interface OrderItemMapper extends BaseMapperX { @Param("bodyIds") Set bodyIds, @Param("groupIds") Set groupId, @Param("componentIds") Set componentIds, - @Param("cadView") boolean cadView); + @Param("cadView") boolean cadView, + @Param("deleted") Boolean deleted); /** * 分页查询订单板件id @@ -252,7 +253,8 @@ public interface OrderItemMapper extends BaseMapperX { @Param("groupIds") Set groupIds, @Param("componentIds") Set componentIds, @Param("name") String name, - @Param("cadView") boolean cadView); + @Param("cadView") boolean cadView, + @Param("deleted") Boolean deleted); /** * 分页查询订单板件id diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java index 56e29b6c7..80b02cb3c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java @@ -64,12 +64,8 @@ public interface PlanItemMapper extends BaseMapperX { List selectOrderPlanPlateList(@Param("planIds") List planIds, @Param("organId") Long organId); - List selectPlateListByPlateIds(@Param(Constants.WRAPPER) Wrapper wrapper,@Param("pageNo") Integer pageNo,@Param("pageSize") Integer pageSize); - List selectPlateListByPlanId(@Param("planId") Long planId, @Param("organId") Long organId); - Long selectPlateCountByPlateIds(@Param(Constants.WRAPPER) Wrapper wrapper); - /** * 查询订单、房间、柜体下未排单大板 * diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java index 6cb6ec837..4d2e6a0e8 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java @@ -437,4 +437,12 @@ public interface PlateMapper extends BaseMapperX { * @return */ List selectPlanAllCuttedOrderIdList(@Param("planId") Long planId); + + /** + * 查询排单板件信息 + * + * @param planIds + * @return + */ + IPage selectPlanPlateInfoPage(@Param("page") IPage page, @Param("planIds") List planIds); } \ 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/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 75724c53b..37110942a 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 @@ -692,7 +692,7 @@ public class AssemblyListServiceImpl implements AssemblyListService { // 查询所有板件的视图所需信息 PageDTO page1 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); - IPage viewPlatesPage = orderItemMapper.selectOrdersViewPlatesPage(page1, orderIds, null, null, queryComponentIds, true); + IPage viewPlatesPage = orderItemMapper.selectOrdersViewPlatesPage(page1, orderIds, null, null, queryComponentIds, true, false); List plateRecords = viewPlatesPage.getRecords(); List plateResultList = new ArrayList<>(); @@ -708,7 +708,7 @@ public class AssemblyListServiceImpl implements AssemblyListService { // 查询所有配件的视图所需信息 PageDTO page2 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); - IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page2, orderIds, null, null, queryComponentIds, null, true); + IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page2, orderIds, null, null, queryComponentIds, null, true, false); List partRecords = viewPartsPage.getRecords(); List partResultList = new ArrayList<>(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index f630d18bf..d09489195 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -378,7 +378,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { AssertUtils.notEmpty(plateDetailRespVOS, ORDER_PLAN_PLATE_ERROR); - List resultPlateList = mergeGroupName(plateDetailRespVOS); + List resultPlateList = mergeGroupAndComponentName(plateDetailRespVOS); List orderDOS = orderMapper.selectBatchIds(orderIds); @@ -780,7 +780,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { AssertUtils.notEmpty(plateDetailRespVOS, ORDER_PLATE_EMPTY); - List resultPlateList = mergeGroupName(plateDetailRespVOS); + List resultPlateList = mergeGroupAndComponentName(plateDetailRespVOS); List models = resultPlateList.stream() @@ -801,11 +801,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } /** - * 合并加工组名称 + * 合并加工组、部件名称 * * @param list */ - public List mergeGroupName(List list) { + public List mergeGroupAndComponentName(List list) { if (list == null || list.isEmpty()) { return Collections.emptyList(); @@ -814,6 +814,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { // plateId -> (groupName + 代表对象) Map resultMap = new LinkedHashMap<>(); Map> groupNameMap = new HashMap<>(); + Map> componentNameMap = new HashMap<>(); for (PlateDetailDO item : list) { @@ -825,11 +826,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { // 保留第一条作为代表对象(或你也可以自定义取最新) resultMap.putIfAbsent(plateId, item); - if (item.getProcessGroupName() != null) { + if (StringUtils.isNotBlank(item.getProcessGroupName())) { groupNameMap .computeIfAbsent(plateId, k -> new LinkedHashSet<>()) .add(item.getProcessGroupName()); } + if (StringUtils.isNotBlank(item.getComponentName())) { + componentNameMap + .computeIfAbsent(plateId, k -> new LinkedHashSet<>()) + .add(item.getComponentName()); + } } // 组装最终结果 @@ -844,6 +850,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { if (groupNames != null && !groupNames.isEmpty()) { item.setProcessGroupName(String.join(",", groupNames)); } + Set componentNames = componentNameMap.get(plateId); + if (CollUtil.isNotEmpty(componentNames)) { + item.setComponentName(String.join(",", componentNames)); + } result.add(item); } 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 c2595da2e..91954eac2 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 @@ -582,10 +582,11 @@ public class OrderComponentServiceImpl implements OrderComponentService { .toList(); // 2、把下级部件id作为查询条件 + Boolean deleted = pageReqVO.getDeleted(); List orderComponentDOS = orderComponentMapper.selectList(new LambdaQueryWrapperX() .in(OrderComponentDO::getTopId, topIds) .eq(OrderComponentDO::getOrderId, orderId) - .eqIfPresent(OrderComponentDO::getDeleted, pageReqVO.getDeleted()) + .eqIfPresent(OrderComponentDO::getDeleted, deleted) .select(OrderComponentDO::getId, OrderComponentDO::getCadViewFileId, OrderComponentDO::getPid)); Set queryComponentIds = new HashSet<>(); if (CollUtil.isNotEmpty(orderComponentDOS)) { @@ -604,7 +605,7 @@ public class OrderComponentServiceImpl implements OrderComponentService { // 查询所有板件的视图所需信息 PageDTO page1 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPlatesPage = orderItemMapper.selectOrdersViewPlatesPage(page1, List.of(orderId), null, - null, queryComponentIds, true); + null, queryComponentIds, true, deleted); List plateRecords = viewPlatesPage.getRecords(); List plateResult = new ArrayList<>(); @@ -621,7 +622,7 @@ public class OrderComponentServiceImpl implements OrderComponentService { // 查询所有配件的视图所需信息 PageDTO page2 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page2, List.of(orderId), null, - null, queryComponentIds, null, true); + null, queryComponentIds, null, true, deleted); List partRecords = viewPartsPage.getRecords(); List partResult = new ArrayList<>(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java index 6caa463a0..58710ffda 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java @@ -5,6 +5,7 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; import com.cf.imes.module.executor.controller.admin.plan.vo.*; +import com.cf.imes.module.executor.controller.admin.plate.vo.OrderViewPlatePageRespVO; import jakarta.validation.Valid; import java.util.List; @@ -71,8 +72,13 @@ public interface PlanService { */ PageResult getOrderGoodsPage(OrderPageReqVOCopy pageReqVO); - - PageResult getPlateByPlanId(GetPlateByPlanIdVO vo); + /** + * 查询排单板件分页 + * + * @param vo + * @return + */ + PageResult getPlateByPlanId(GetPlateByPlanIdVO vo); PageResult getOrderByPlanId(PlanOrderPageReqVO pageReqVO); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index 5579ed3b9..2c8e5e04b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -1,5 +1,6 @@ package com.cf.imes.module.executor.service.plan; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import co.elastic.clients.elasticsearch.ElasticsearchClient; @@ -29,19 +30,25 @@ import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.RemainBoardInfo; import com.cf.imes.module.executor.controller.admin.plan.vo.*; import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds; +import com.cf.imes.module.executor.controller.admin.plate.vo.OrderViewPlatePageRespVO; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO; import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; +import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO; +import com.cf.imes.module.executor.dal.dataobject.orderItem.OrdersViewPlatesPageDO; +import com.cf.imes.module.executor.dal.dataobject.ordercomponent.OrderComponentDO; import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper; import com.cf.imes.module.executor.dal.mysql.order.OrderMapper; import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper; +import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; +import com.cf.imes.module.executor.dal.mysql.ordercomponent.OrderComponentMapper; import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; import com.cf.imes.module.executor.dal.mysql.planitem.PlanItemMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; @@ -51,6 +58,7 @@ import com.cf.imes.module.executor.enums.OrderPlanQueryTypeEnum; import com.cf.imes.module.executor.enums.OrderStatusEnum; import com.cf.imes.module.executor.util.elasticsearch.EsUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.aop.framework.AopContext; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,11 +69,11 @@ import jakarta.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR; import static com.cf.imes.framework.common.util.json.JsonUtils.parseArray; -import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*; import static com.cf.imes.module.executor.enums.EsIndexEnum.*; @@ -113,6 +121,12 @@ public class PlanServiceImpl implements PlanService { @Resource private EsUtils esUtils; + @Resource + private OrderGroupMapper orderGroupMapper; + + @Resource + private OrderComponentMapper orderComponentMapper; + // 重复使用的常量 private static final String FIELD_ORDER_ID = "o.id"; @@ -623,57 +637,181 @@ public class PlanServiceImpl implements PlanService { @Override - public PageResult getPlateByPlanId(GetPlateByPlanIdVO vo) { - if(vo.getPlanIds().isEmpty()){ + public PageResult getPlateByPlanId(GetPlateByPlanIdVO vo) { + List planIds = vo.getPlanIds(); + if (CollUtil.isEmpty(planIds)) { return null; } - List planIds = vo.getPlanIds(); - List planDOS = planMapper.selectBatchIds(planIds); - if(planDOS.size() != planIds.size()){ - planDOS.forEach(f->{ - if(!planIds.contains(f.getId())){ - throw new ServiceException(PLAN_NOT_DATA_EXISTS,f.getId()); + if (planDOS.size() != planIds.size()) { + planDOS.forEach(f -> { + if (!planIds.contains(f.getId())) { + throw new ServiceException(PLAN_NOT_DATA_EXISTS, f.getId()); } }); } - QueryWrapperX queryWrapperX = new QueryWrapperX<>(); + // todo 当前默认单排单查询 + Set orderIdSet = planDOS.stream() + .map(PlanDO::getOrderNos) + .filter(StringUtils::isNotBlank) + .flatMap(orderNos -> JSON.parseArray(orderNos) + .toJavaList(Long.class) + .stream()) + .collect(Collectors.toCollection(LinkedHashSet::new)); - String filterTypes = ""; - if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) { - filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString(); - } - if (Objects.nonNull(vo.getBurrow()) && vo.getBurrow()) { - filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString(); - } - if (Objects.nonNull(vo.getTwoDimensionalToolPath()) && vo.getTwoDimensionalToolPath()) { - filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString(); - } - queryWrapperX.eq("op.organ_id",getUserOrganId()) - .in(FIELD_PLAN_ID, vo.getPlanIds()) - .eqIfPresent("op.is_door", vo.getIsDoor()) - .eqIfPresent(FIELD_OP_IS_SPECIAL_SHAPED, vo.getRectangle() != null ? false: null) - .eqIfPresent(FIELD_OP_IS_SPECIAL_SHAPED, vo.getSpecialShaped()) - .eqIfPresent("op.is_sculpt", vo.getSculpt()) - .betweenIfPresent("op.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()}) - .betweenIfPresent("op.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()}) - .likeIfPresent("op.filter_type", insertSeparator(filterTypes)); + // 分页查询排单板件 + PageDTO page = new PageDTO<>(vo.getPageNo(), vo.getPageSize()); + IPage ordersViewPlatesPageDOIPage = plateMapper.selectPlanPlateInfoPage(page, planIds); - Integer pageNo = (vo.getPageNo() - 1) * vo.getPageSize(); - - List pageResult = planItemMapper.selectPlateListByPlateIds(queryWrapperX,pageNo,vo.getPageSize()); - - if (CollUtil.isEmpty(pageResult)) { + long total = ordersViewPlatesPageDOIPage.getTotal(); + if (total == 0) { return new PageResult<>(); } - Long sum = planItemMapper.selectPlateCountByPlateIds(queryWrapperX); + List ordersViewPlatesPageDOIPageRecords = ordersViewPlatesPageDOIPage.getRecords(); + List plateIds = ordersViewPlatesPageDOIPageRecords.stream().map(OrdersViewPlatesPageDO::getId).toList(); - return new PageResult<>(pageResult, sum); + // 查询关联关系 + List orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX() + .in(OrderItemDO::getOrderId, orderIdSet) + .in(OrderItemDO::getPlateId, plateIds) + .select(OrderItemDO::getPlateId, OrderItemDO::getRoomId, OrderItemDO::getBodyId, OrderItemDO::getGroupId, OrderItemDO::getCompId) + ); + + // 暂存plateId:set + Map> plateGroupMap = new HashMap<>(); + // 暂存plateId:set + Map> plateCompMap = new HashMap<>(); + // 暂存plateId:bodyId + Map plateBodyMap = new HashMap<>(); + + Map plateMap = + ordersViewPlatesPageDOIPageRecords.stream() + .collect(Collectors.toMap( + OrdersViewPlatesPageDO::getId, + Function.identity(), + (a, b) -> a + )); + + for (OrderItemDO item : orderItemRelation) { + + Long plateId = item.getPlateId(); + + // 累计plateId下group_id + if (item.getGroupId() != null) { + plateGroupMap + .computeIfAbsent(plateId, k -> new HashSet<>()) + .add(item.getGroupId()); + } + + // 累计plateId下comp_id + if (item.getCompId() != null) { + plateCompMap + .computeIfAbsent(plateId, k -> new HashSet<>()) + .add(item.getCompId()); + } + + // 记录plateId下body_id + if (item.getBodyId() != null) { + plateBodyMap + .computeIfAbsent(plateId, k -> item.getBodyId()); + } + } + + // 查询加工组 + Set allGroupIds = plateGroupMap.values() + .stream() + .flatMap(Set::stream) + .collect(Collectors.toSet()); + + Map groupNameMap = Collections.emptyMap(); + + if (!allGroupIds.isEmpty()) { + groupNameMap = orderGroupMapper.selectByIds(allGroupIds) + .stream() + .collect(Collectors.toMap( + OrderGroupDO::getId, + OrderGroupDO::getName, + (a, b) -> a + )); + } + + // 查询部件 + Set allCompIds = plateCompMap.values() + .stream() + .flatMap(Set::stream) + .collect(Collectors.toSet()); + + Map compNameMap = Collections.emptyMap(); + + if (!allCompIds.isEmpty()) { + compNameMap = orderComponentMapper.selectByIds(allCompIds) + .stream() + .collect(Collectors.toMap( + OrderComponentDO::getId, + OrderComponentDO::getName, + (a, b) -> a + )); + } + + // 查询房间 + Set allBodyIds = plateBodyMap.values() + .stream() + .collect(Collectors.toSet()); + + Map bodyMap = Collections.emptyMap(); + + if (!allBodyIds.isEmpty()) { + bodyMap = orderBodyMapper.selectByIds(allBodyIds) + .stream() + .collect(Collectors.toMap( + OrderBodyDO::getId, + Function.identity(), + (a, b) -> a + )); + } + + List records = new ArrayList<>(); + for (Map.Entry entry : plateMap.entrySet()) { + + Long plateId = entry.getKey(); + OrdersViewPlatesPageDO plate = entry.getValue(); + + OrderViewPlatePageRespVO plateRespVO = BeanUtil.copyProperties(plate, OrderViewPlatePageRespVO.class); + + // 用逗号拼接加工组名称 + Set plateGroupIds = plateGroupMap.getOrDefault(plateId, Collections.emptySet()); + List groupNames = plateGroupIds.stream() + .map(groupNameMap::get) + .filter(Objects::nonNull) + .toList(); + + plateRespVO.setProcessGroupName(String.join(",", groupNames)); + + // 用逗号拼接部件组名称 + Set plateCompIds = plateCompMap.getOrDefault(plateId, Collections.emptySet()); + List compNames = plateCompIds.stream() + .map(compNameMap::get) + .filter(Objects::nonNull) + .toList(); + + plateRespVO.setComponentName(String.join(",", compNames)); + + // 匹配房间名、柜体名 + Long bodyId = plateBodyMap.get(plateId); + OrderBodyDO orderBodyDO = bodyMap.get(bodyId); + if(ObjectUtil.isNotNull(orderBodyDO)) { + plateRespVO.setBodyName(orderBodyDO.getName()); + plateRespVO.setRoomName(orderBodyDO.getRoomName()); + } + + records.add(plateRespVO); + } + return new PageResult<>(records, total); } 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 d2ca08bcf..549167028 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 @@ -4,7 +4,6 @@ import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderCadViewPlatePageReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrdersViewCadViewInfoRespVO; -import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetailRespVO; import com.cf.imes.module.executor.controller.admin.plate.vo.*; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; @@ -76,7 +75,7 @@ public interface PlateService { * @param reqVO * @return */ - List getOrdersNoPlanPlate(NoPlanPlatePageReqVO reqVO); + NoPlanPlateRespVO getOrdersNoPlanPlate(NoPlanPlatePageReqVO reqVO); /** 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 e56298f7b..b49b446f3 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 @@ -9,6 +9,7 @@ import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.search.Hit; +import com.alibaba.cloud.commons.lang.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; @@ -19,6 +20,7 @@ import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.Assert.AssertUtils; +import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -346,7 +348,7 @@ public class PlateServiceImpl implements PlateService { @Override - public List getOrdersNoPlanPlate(NoPlanPlatePageReqVO pageReqVO) { + public NoPlanPlateRespVO getOrdersNoPlanPlate(NoPlanPlatePageReqVO pageReqVO) { // 置空内部条件 pageReqVO.setMaterialList(null); pageReqVO.setColorList(null); @@ -398,9 +400,21 @@ public class PlateServiceImpl implements PlateService { // 查询订单未排单小板 List plateDetailDOS = plateMapper.selectNoPlanPlateWithFilter(pageReqVO, organId); // 合并加工组 - List resultPlateList = mergeGroupName(plateDetailDOS); + List resultPlateList = mergeGroupAndComponentName(plateDetailDOS); - return BeanUtil.copyToList(resultPlateList, PlateDetailRespVO.class); + List models = + resultPlateList.stream() + .map(PlateDetailDO::getModelData) + .filter(StringUtils::isNotBlank) + .map(json -> JsonUtils.parseObject(json, OrderModelDO.class)) + .toList(); + + AssertUtils.notEmpty(models, ORDER_PLAN_PLATE_MODEL_DATE_ERROR); + + return NoPlanPlateRespVO.builder() + .plateList(BeanUtil.copyToList(resultPlateList, PlateDetailRespVO.class)) + .plateModels(models) + .build(); } /** @@ -408,7 +422,12 @@ public class PlateServiceImpl implements PlateService { * * @param list */ - public List mergeGroupName(List list) { + /** + * 合并加工组、部件名称 + * + * @param list + */ + public List mergeGroupAndComponentName(List list) { if (list == null || list.isEmpty()) { return Collections.emptyList(); @@ -417,6 +436,7 @@ public class PlateServiceImpl implements PlateService { // plateId -> (groupName + 代表对象) Map resultMap = new LinkedHashMap<>(); Map> groupNameMap = new HashMap<>(); + Map> componentNameMap = new HashMap<>(); for (PlateDetailDO item : list) { @@ -428,11 +448,16 @@ public class PlateServiceImpl implements PlateService { // 保留第一条作为代表对象(或你也可以自定义取最新) resultMap.putIfAbsent(plateId, item); - if (item.getProcessGroupName() != null) { + if (StringUtils.isNotBlank(item.getProcessGroupName())) { groupNameMap .computeIfAbsent(plateId, k -> new LinkedHashSet<>()) .add(item.getProcessGroupName()); } + if (StringUtils.isNotBlank(item.getComponentName())) { + componentNameMap + .computeIfAbsent(plateId, k -> new LinkedHashSet<>()) + .add(item.getComponentName()); + } } // 组装最终结果 @@ -447,6 +472,10 @@ public class PlateServiceImpl implements PlateService { if (groupNames != null && !groupNames.isEmpty()) { item.setProcessGroupName(String.join(",", groupNames)); } + Set componentNames = componentNameMap.get(plateId); + if (CollUtil.isNotEmpty(componentNames)) { + item.setComponentName(String.join(",", componentNames)); + } result.add(item); } @@ -1238,9 +1267,11 @@ public class PlateServiceImpl implements PlateService { .filter(item -> item.getCadViewFileId() != null) .collect(Collectors.toMap(OrderBodyDO::getId, OrderBodyDO::getCadViewFileId)); + Boolean deleted = reqVO.getDeleted(); + // 查询所有板件的视图所需信息 PageDTO page1 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); - IPage viewPlatesPage = orderItemMapper.selectOrdersViewPlatesPage(page1, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, true); + IPage viewPlatesPage = orderItemMapper.selectOrdersViewPlatesPage(page1, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, true, deleted); List plateRecords = viewPlatesPage.getRecords(); @@ -1251,7 +1282,7 @@ public class PlateServiceImpl implements PlateService { // 查询所有配件的视图所需信息 PageDTO page2 = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); - IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page2, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, null, true); + IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page2, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, null, true, deleted); List partRecords = viewPartsPage.getRecords(); @@ -1288,9 +1319,11 @@ public class PlateServiceImpl implements PlateService { .filter(item -> item.getCadViewFileId() != null) .collect(Collectors.toMap(OrderBodyDO::getId, OrderBodyDO::getCadViewFileId)); + Boolean deleted = reqVO.getDeleted(); + // 查询所有配件的视图所需信息 PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); - IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, reqVO.getName(), true); + IPage viewPartsPage = orderItemMapper.selectOrdersViewPartsPage(page, List.of(orderId), bodyIds, reqVO.getGroupIds(), null, reqVO.getName(), true, deleted); List partRecords = viewPartsPage.getRecords(); 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 f81da974b..589401fbf 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 @@ -497,7 +497,14 @@ , MIN(comp_id) AS comp_id - FROM order_item + + + FROM order_item_temp + + + FROM order_item + + WHERE plate_id != 0 AND body_id IN @@ -527,7 +534,7 @@ ) i INNER JOIN order_plate p ON p.id = i.plate_id INNER JOIN order_goods g ON g.id = p.goods_id - WHERE p.deleted = false + WHERE p.deleted = #{deleted} - - - - - - - - - - - - @@ -519,8 +450,6 @@ SELECT og.name AS processGroupName, + oc.name AS componentName, ogs.goods_id as plateGoodsId, ogs.goods_name as goodsName, @@ -455,11 +456,21 @@ op.open_door_type as openDoorType, op.offset_x as offsetX, op.offset_y as offsetY, - op.is_special_shaped as isSpecialShaped, + (op.unregular_point_count > 0 ) AS isSpecialShaped, op.is_sculpt as isSculpt, + op.is_side_sculpt AS sideModel, op.is_row_hole as hasHole, op.remark as remark, - op.model_data as modelData + op.model_data as modelData, + op.is_2v as is2v, + op.is_side_2v as isSide2v, + (op.front_model_count > 0 AND op.back_model_count > 0) AS doubleSideModel, + (op.front_hole_count > 0 AND op.back_hole_count > 0) AS doubleSideHole, + (op.front_model_count > 0) AS frontModel, + (op.back_model_count > 0) AS backModel, + (op.front_hole_count > 0) AS frontHole, + (op.back_hole_count > 0) AS backHole, + (op.side_hole_count > 0) AS sideHole FROM order_plate op @@ -469,7 +480,9 @@ AND op.goods_id = ogs.id LEFT JOIN ( - SELECT group_id, plate_id + SELECT plate_id, + group_id, + comp_id FROM order_item WHERE plate_id != 0 and source_id = 0 @@ -478,13 +491,16 @@ #{orderIds} and organ_id = #{organId} - group by group_id, plate_id + GROUP BY plate_id, group_id, comp_id ) oi ON op.id = oi.plate_id LEFT JOIN order_group og ON og.id = oi.group_id + LEFT JOIN order_component oc + ON oc.id = oi.comp_id + WHERE op.organ_id = #{organId} and op.order_id in @@ -502,6 +518,7 @@ SELECT og.name AS processGroupName, + oc.name AS componentName, ogs.goods_id as plateGoodsId, ogs.goods_name as goodsName, @@ -514,6 +531,7 @@ op.name as name, op.plate_no as plateNo, op.custom_plate_no as customPlateNo, + p.cad_plate_no AS customNumber, op.type as type, op.goods_id as goodsId, op.width, @@ -534,11 +552,20 @@ op.open_door_type as openDoorType, op.offset_x as offsetX, op.offset_y as offsetY, - op.is_special_shaped as isSpecialShaped, + (op.unregular_point_count > 0 ) AS isSpecialShaped, op.is_sculpt as isSculpt, op.is_row_hole as hasHole, op.remark as remark, - op.model_data as modelData + op.model_data as modelData, + op.is_2v as is2v, + op.is_side_2v as isSide2v, + (op.front_model_count > 0 AND op.back_model_count > 0) AS doubleSideModel, + (op.front_hole_count > 0 AND op.back_hole_count > 0) AS doubleSideHole, + (op.front_model_count > 0) AS frontModel, + (op.back_model_count > 0) AS backModel, + (op.front_hole_count > 0) AS frontHole, + (op.back_hole_count > 0) AS backHole, + (op.side_hole_count > 0) AS sideHole FROM order_plate op @@ -548,7 +575,9 @@ AND op.goods_id = ogs.id LEFT JOIN ( - SELECT group_id, plate_id + SELECT plate_id, + group_id, + comp_id FROM order_item WHERE plate_id != 0 AND source_id = 0 @@ -561,7 +590,7 @@ - GROUP BY group_id, plate_id + GROUP BY plate_id, group_id, comp_id ) oi ON op.id = oi.plate_id @@ -569,6 +598,10 @@ ON og.id = oi.group_id AND og.organ_id = #{organId} + LEFT JOIN order_component oc + ON oc.id = oi.comp_id + AND oc.organ_id = #{organId} + JOIN orders o ON o.id = op.order_id AND o.organ_id = #{organId} @@ -1462,9 +1495,12 @@ (p.front_hole_count > 0) AS frontHole, (p.back_hole_count > 0) AS backHole, (p.side_hole_count > 0) AS sideHole, + p.split_height, + p.split_width, og.material, og.color, - og.brand + og.brand, + og.goods_name FROM order_plate p INNER JOIN order_goods og ON p.order_id = og.order_id and og.organ_id = p.organ_id AND p.goods_id = og.id WHERE p.id IN @@ -1533,6 +1569,55 @@ AND o.deleted = false + +