mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
1、get-module生产单详情出参规范;2、新增cadview分页和info接口基于部件查询能力;3、新增部件DB相关、部件树查询接口;
This commit is contained in:
+3
@@ -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_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_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");
|
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");
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -460,7 +460,7 @@ public class OrderController {
|
|||||||
@Parameter(name = "deleted", description = "是否删除", example = "false")
|
@Parameter(name = "deleted", description = "是否删除", example = "false")
|
||||||
})
|
})
|
||||||
@PreAuthorize("@ss.hasPermission('production:manager-list:detail')")
|
@PreAuthorize("@ss.hasPermission('production:manager-list:detail')")
|
||||||
public CommonResult<Map<String, Object>> getModule(@RequestParam("orderId") Long orderId,
|
public CommonResult<OrderModuleDetailRespVO> getModule(@RequestParam("orderId") Long orderId,
|
||||||
@RequestParam(value = "deleted", required = false, defaultValue = "false") Boolean deleted) {
|
@RequestParam(value = "deleted", required = false, defaultValue = "false") Boolean deleted) {
|
||||||
if (deleted == null) {
|
if (deleted == null) {
|
||||||
deleted = false;
|
deleted = false;
|
||||||
|
|||||||
+7
-2
@@ -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.pojo.PageParam;
|
||||||
import com.cf.imes.framework.common.validation.InEnum;
|
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.OrderCadViewInfoGroup;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plate.vo.OrderCadViewPageGroup;
|
||||||
import com.cf.imes.module.executor.enums.OrderCadViewPlateRangeEnum;
|
import com.cf.imes.module.executor.enums.OrderCadViewPlateRangeEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@@ -21,6 +22,7 @@ import lombok.ToString;
|
|||||||
public class OrderCadViewPlatePageReqVO extends PageParam {
|
public class OrderCadViewPlatePageReqVO extends PageParam {
|
||||||
|
|
||||||
@Schema(description = "生产单号", example = "1024")
|
@Schema(description = "生产单号", example = "1024")
|
||||||
|
@NotNull(message = "{order.cadview.plate.page.orderid.not.null}",groups = {OrderCadViewPageGroup.class})
|
||||||
private Long orderId;
|
private Long orderId;
|
||||||
|
|
||||||
@Schema(description = "房间编号", example = "1024")
|
@Schema(description = "房间编号", example = "1024")
|
||||||
@@ -33,11 +35,14 @@ public class OrderCadViewPlatePageReqVO extends PageParam {
|
|||||||
private Long groupId;
|
private Long groupId;
|
||||||
|
|
||||||
@Schema(description = "板件编号", example = "1024")
|
@Schema(description = "板件编号", example = "1024")
|
||||||
@NotNull(message = "板件编号不能为空", groups = OrderCadViewInfoGroup.class)
|
@NotNull(message = "{order.cadview.plate.cadinfo.plateno.not.null}", groups = OrderCadViewInfoGroup.class)
|
||||||
private Long plateNo;
|
private Long plateNo;
|
||||||
|
|
||||||
|
@Schema(description = "部件编号", example = "1024")
|
||||||
|
private Long componentId;
|
||||||
|
|
||||||
@Schema(description = "板件查询范围", example = "1")
|
@Schema(description = "板件查询范围", example = "1")
|
||||||
@NotNull(message = "板件查询范围不能为空", groups = OrderCadViewInfoGroup.class)
|
@NotNull(message = "{order.cadview.plate.cadinfo.range.not.null}", groups = OrderCadViewInfoGroup.class)
|
||||||
@InEnum(OrderCadViewPlateRangeEnum.class)
|
@InEnum(OrderCadViewPlateRangeEnum.class)
|
||||||
private Integer range;
|
private Integer range;
|
||||||
}
|
}
|
||||||
|
|||||||
+32
@@ -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<OrderModuleRespVO> module;
|
||||||
|
|
||||||
|
@Schema(description = "配件列表")
|
||||||
|
private List<OrderPlatesDetailRespVO> parts;
|
||||||
|
|
||||||
|
@Schema(description = "板材列表")
|
||||||
|
private List<OrderGoodsRespVO> goods;
|
||||||
|
|
||||||
|
@Schema(description = "组件列表")
|
||||||
|
private List<OrderPlatesDetailRespVO> component;
|
||||||
|
|
||||||
|
@Schema(description = "部件列表")
|
||||||
|
private List<OrderComponentRespVO> section;
|
||||||
|
}
|
||||||
+33
@@ -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<Object> getTree(@PathVariable Long componentId) {
|
||||||
|
return success(orderComponentService.getOrderDetailComponentTree(componentId));
|
||||||
|
}
|
||||||
|
}
|
||||||
+24
@@ -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;
|
||||||
|
}
|
||||||
+24
@@ -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<OrderComponentTreeRespVO> children = new ArrayList<>();
|
||||||
|
}
|
||||||
+8
-10
@@ -58,10 +58,8 @@ public class PlateController {
|
|||||||
|
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除生产单板件")
|
@Operation(summary = "删除生产单板件")
|
||||||
@Parameters({
|
@Parameter(name = "plateIds", description = "板材ID", required = true)
|
||||||
@Parameter(name = "plateIds", description = "板材ID", required = true),
|
@Parameter(name = "planId", description = "排单ID", required = true)
|
||||||
@Parameter(name = "planId", description = "排单ID", required = true)
|
|
||||||
})
|
|
||||||
@PreAuthorize("@ss.hasAnyPermissions('executor:plate:delete','placeorder:optimize')")
|
@PreAuthorize("@ss.hasAnyPermissions('executor:plate:delete','placeorder:optimize')")
|
||||||
public CommonResult<Boolean> deletePlate(@RequestParam("plateIds") @NotNull List<Long> plateIds,
|
public CommonResult<Boolean> deletePlate(@RequestParam("plateIds") @NotNull List<Long> plateIds,
|
||||||
@RequestParam("planId") @NotNull Long planId) {
|
@RequestParam("planId") @NotNull Long planId) {
|
||||||
@@ -139,15 +137,15 @@ public class PlateController {
|
|||||||
return success(plateService.createNewPlate(reqVO));
|
return success(plateService.createNewPlate(reqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/body/view/page")
|
@GetMapping("/view/page")
|
||||||
@Operation(summary = "获取柜体下的板件视图分页列表数据")
|
@Operation(summary = "获取柜体下的板件视图分页列表数据")
|
||||||
public CommonResult<PageResult<OrderBodyViewPlatePageRespVO>> getBodyViewPlatesPage(@Valid OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) {
|
public CommonResult<PageResult<OrderViewPlatePageRespVO>> getBodyViewPlatesPage(@Validated(OrderCadViewPageGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) {
|
||||||
return success(plateService.getBodyViewPlatesPage(orderCadViewPlatePageReqVO));
|
return success(plateService.getViewPlatesPage(orderCadViewPlatePageReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/body/view/cadinfo")
|
@GetMapping("/view/cadinfo")
|
||||||
@Operation(summary = "获取板件对应柜体下的所有板件视图列表数据")
|
@Operation(summary = "获取板件对应柜体下的所有板件视图列表数据")
|
||||||
public CommonResult<List<OrderBodyViewPlatePageRespVO>> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) {
|
public CommonResult<List<OrderViewPlatePageRespVO>> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) {
|
||||||
return success(plateService.getBodyViewPlatesCadInfo(orderCadViewPlatePageReqVO));
|
return success(plateService.getViewPlatesCadInfo(orderCadViewPlatePageReqVO));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+10
@@ -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 {
|
||||||
|
}
|
||||||
+2
-2
@@ -19,9 +19,9 @@ import java.math.BigDecimal;
|
|||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Schema(description = "管理后台 - 柜体对应的板件视图信息")
|
@Schema(description = "管理后台 - 板件视图信息")
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public class OrderBodyViewPlatePageRespVO {
|
public class OrderViewPlatePageRespVO {
|
||||||
@Schema(description = "板件id")
|
@Schema(description = "板件id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
+96
@@ -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;
|
||||||
|
}
|
||||||
+4
-3
@@ -1,10 +1,7 @@
|
|||||||
package com.cf.imes.module.executor.dal.dataobject.orderItem;
|
package com.cf.imes.module.executor.dal.dataobject.orderItem;
|
||||||
|
|
||||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单明细表 order_item DO
|
* 生产单明细表 order_item DO
|
||||||
@@ -70,4 +67,8 @@ public class OrderItemDO {
|
|||||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
private Long organId;
|
private Long organId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部件id
|
||||||
|
*/
|
||||||
|
private Long compId;
|
||||||
}
|
}
|
||||||
+1
@@ -202,5 +202,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
@Param("bodyId") Long bodyId,
|
@Param("bodyId") Long bodyId,
|
||||||
@Param("groupId") Long groupId,
|
@Param("groupId") Long groupId,
|
||||||
@Param("organId") Long organId,
|
@Param("organId") Long organId,
|
||||||
|
@Param("componentId") Long componentId,
|
||||||
@Param("cadView") boolean cadView);
|
@Param("cadView") boolean cadView);
|
||||||
}
|
}
|
||||||
+26
@@ -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<OrderComponentDO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单详情部件列表查询
|
||||||
|
*
|
||||||
|
* @param orderId 生产单id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OrderComponentDO> getOrderDetailComponentList(@Param("orderId") Long orderId);
|
||||||
|
}
|
||||||
+2
-1
@@ -17,7 +17,8 @@ import java.util.Arrays;
|
|||||||
public enum OrderCadViewPlateRangeEnum implements IntArrayValuable {
|
public enum OrderCadViewPlateRangeEnum implements IntArrayValuable {
|
||||||
BODY(0),
|
BODY(0),
|
||||||
GROUP(1),
|
GROUP(1),
|
||||||
GROUP_WITH_BODY(2);
|
GROUP_WITH_BODY(2),
|
||||||
|
COMPONENT(3);
|
||||||
|
|
||||||
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(OrderCadViewPlateRangeEnum::getRange).toArray();
|
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(OrderCadViewPlateRangeEnum::getRange).toArray();
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ public interface OrderService {
|
|||||||
* @param orderId: 生产单Id
|
* @param orderId: 生产单Id
|
||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> getModule(Long orderId, Integer deleted);
|
OrderModuleDetailRespVO getModule(Long orderId, Integer deleted);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param orderId: 生产单id
|
* @param orderId: 生产单id
|
||||||
|
|||||||
+11
-7
@@ -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.customplateno.CustomPlateNoGenerateService;
|
||||||
import com.cf.imes.module.executor.service.orderImport.OrderImportHandler;
|
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.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.service.plan.PlanService;
|
||||||
import com.cf.imes.module.executor.util.deviseData.structure.FieldConstants;
|
import com.cf.imes.module.executor.util.deviseData.structure.FieldConstants;
|
||||||
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
|
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
|
||||||
@@ -171,6 +172,8 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
@Resource
|
@Resource
|
||||||
private EsUtils esUtils;
|
private EsUtils esUtils;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderComponentService orderComponentService;
|
||||||
|
|
||||||
private static final String SUBMIT_STATE = "1"; // 空订单 原生产系统
|
private static final String SUBMIT_STATE = "1"; // 空订单 原生产系统
|
||||||
|
|
||||||
@@ -276,7 +279,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getModule(Long orderId, Integer deleted) {
|
public OrderModuleDetailRespVO getModule(Long orderId, Integer deleted) {
|
||||||
// 柜体信息
|
// 柜体信息
|
||||||
List<OrderModuleRespVO> orderModuleRespVOList = orderBodyMapper.selectModuleByOrderId(orderId, getUserOrganId(), deleted);
|
List<OrderModuleRespVO> orderModuleRespVOList = orderBodyMapper.selectModuleByOrderId(orderId, getUserOrganId(), deleted);
|
||||||
|
|
||||||
@@ -294,12 +297,13 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
types.add(CategoryEnum.ASSEMBLY.getValue());
|
types.add(CategoryEnum.ASSEMBLY.getValue());
|
||||||
List<OrderPlatesDetailRespVO> orderComponentRespVOS = orderItemMapper.selectPartsByOrderId(orderId, getUserOrganId(), deleted, types);
|
List<OrderPlatesDetailRespVO> orderComponentRespVOS = orderItemMapper.selectPartsByOrderId(orderId, getUserOrganId(), deleted, types);
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
OrderModuleDetailRespVO orderModuleDetailRespVO = new OrderModuleDetailRespVO();
|
||||||
map.put("module", orderModuleRespVOList);
|
orderModuleDetailRespVO.setModule(orderModuleRespVOList);
|
||||||
map.put("parts", orderItemDOS);
|
orderModuleDetailRespVO.setParts(orderItemDOS);
|
||||||
map.put("goods", orderGoodsRespVOS);
|
orderModuleDetailRespVO.setGoods(orderGoodsRespVOS);
|
||||||
map.put("component", orderComponentRespVOS);
|
orderModuleDetailRespVO.setComponent(orderComponentRespVOS);
|
||||||
return map;
|
orderModuleDetailRespVO.setSection(orderComponentService.getOrderComponentList(orderId));
|
||||||
|
return orderModuleDetailRespVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+29
@@ -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<OrderComponentRespVO> getOrderComponentList(Long orderId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部件树
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OrderComponentTreeRespVO> getOrderDetailComponentTree(Long componentId);
|
||||||
|
}
|
||||||
+152
@@ -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<OrderComponentRespVO> getOrderComponentList(Long orderId) {
|
||||||
|
List<OrderComponentRespVO> resultList = new ArrayList<>();
|
||||||
|
List<OrderComponentDO> 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<OrderComponentTreeRespVO> getOrderDetailComponentTree(Long componentId) {
|
||||||
|
// 1. 查询本身和所有非顶级节点
|
||||||
|
OrderComponentDO componentDO = orderComponentMapper.selectById(componentId);
|
||||||
|
if (ObjectUtil.isNull(componentDO)) {
|
||||||
|
throw new ServiceException(ORDER_COMPONENT_NOT_EXIST);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<OrderComponentDO> orderComponentDOS = orderComponentMapper.selectList(
|
||||||
|
new LambdaQueryWrapperX<OrderComponentDO>()
|
||||||
|
.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<Long, OrderComponentTreeRespVO> 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<Long> path) {
|
||||||
|
// 防止 pid 循环
|
||||||
|
if (!path.add(node.getId())) {
|
||||||
|
node.getChildren().clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<OrderComponentTreeRespVO> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
-5
@@ -96,18 +96,18 @@ public interface PlateService {
|
|||||||
List<InsertPlateRespVO> createNewPlate(List<OptimizationSavePlateReqVO> reqVO);
|
List<InsertPlateRespVO> createNewPlate(List<OptimizationSavePlateReqVO> reqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取柜体板件视图分页列表
|
* 获取板件视图分页列表
|
||||||
*
|
*
|
||||||
* @param orderBodyPageRespVO
|
* @param orderBodyPageRespVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PageResult<OrderBodyViewPlatePageRespVO> getBodyViewPlatesPage(OrderCadViewPlatePageReqVO orderBodyPageRespVO);
|
PageResult<OrderViewPlatePageRespVO> getViewPlatesPage(OrderCadViewPlatePageReqVO orderBodyPageRespVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据板件id获取柜体下的所有板件cad视图所需信息
|
* 根据板件id获取所有板件cad视图所需信息
|
||||||
*
|
*
|
||||||
* @param plateId
|
* @param orderBodyPageRespVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<OrderBodyViewPlatePageRespVO> getBodyViewPlatesCadInfo(OrderCadViewPlatePageReqVO orderBodyPageRespVO);
|
List<OrderViewPlatePageRespVO> getViewPlatesCadInfo(OrderCadViewPlatePageReqVO orderBodyPageRespVO);
|
||||||
}
|
}
|
||||||
+34
-65
@@ -149,7 +149,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
|
|
||||||
AssertUtils.notEmpty(planDO, ORDER_PLAN_DATE_ERROR);
|
AssertUtils.notEmpty(planDO, ORDER_PLAN_DATE_ERROR);
|
||||||
|
|
||||||
List<PlateDO> plateDOS = plateMapper.selectBatchIds(plateIds);
|
List<PlateDO> plateDOS = plateMapper.selectByIds(plateIds);
|
||||||
|
|
||||||
AssertUtils.notEmpty(plateDOS, REMAIN_PLATE_NOT_EXISTS);
|
AssertUtils.notEmpty(plateDOS, REMAIN_PLATE_NOT_EXISTS);
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
|
|
||||||
List<Long> bodyIds = orderItemDOS.stream().map(OrderItemDO::getBodyId).distinct().toList();
|
List<Long> bodyIds = orderItemDOS.stream().map(OrderItemDO::getBodyId).distinct().toList();
|
||||||
|
|
||||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectByIds(bodyIds);
|
||||||
|
|
||||||
orderBodyDOS.forEach(f -> {
|
orderBodyDOS.forEach(f -> {
|
||||||
int plateNum = orderItemDOS.stream().filter(o -> f.getId().equals(o.getBodyId())).toList().size();
|
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);
|
orderBodyMapper.updateBatch(orderBodyDOS);
|
||||||
|
|
||||||
// 删除小板ID
|
// 删除小板ID
|
||||||
plateMapper.deleteBatchIds(plateIdList);
|
plateMapper.deleteByIds(plateIdList);
|
||||||
|
|
||||||
// 删除小板明细信息
|
// 删除小板明细信息
|
||||||
orderItemMapper.deleteByPlateId(plateIdList, orderIds, getUserOrganId());
|
orderItemMapper.deleteByPlateId(plateIdList, orderIds, getUserOrganId());
|
||||||
@@ -197,7 +197,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
// 删除添加自增板时新增的大板ID
|
// 删除添加自增板时新增的大板ID
|
||||||
List<Long> orderGoodsIdList = goodsMapper.selectInsertGoodsIds(orderIds, goodsIds, getUserOrganId());
|
List<Long> orderGoodsIdList = goodsMapper.selectInsertGoodsIds(orderIds, goodsIds, getUserOrganId());
|
||||||
if (CollUtil.isNotEmpty(orderGoodsIdList)) {
|
if (CollUtil.isNotEmpty(orderGoodsIdList)) {
|
||||||
goodsMapper.deleteBatchIds(orderGoodsIdList);
|
goodsMapper.deleteByIds(orderGoodsIdList);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统计更新板件数量和面积
|
// 统计更新板件数量和面积
|
||||||
@@ -274,31 +274,6 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 拆分list,每个1000条
|
|
||||||
*
|
|
||||||
* @param dataList
|
|
||||||
* @param <T>
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private <T> List<List<T>> batchProcess(List<T> dataList) {
|
|
||||||
List<List<T>> 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<T> subList = dataList.subList(i, end);
|
|
||||||
|
|
||||||
if (!subList.isEmpty()) {
|
|
||||||
resultList.add(subList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return resultList;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validatePlateExists(Long id) {
|
private void validatePlateExists(Long id) {
|
||||||
if (plateMapper.selectById(id) == null) {
|
if (plateMapper.selectById(id) == null) {
|
||||||
throw new ServiceException(REMAIN_PLATE_NOT_EXISTS);
|
throw new ServiceException(REMAIN_PLATE_NOT_EXISTS);
|
||||||
@@ -436,12 +411,12 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
if (CollUtil.isEmpty(importPlates)) {
|
if (CollUtil.isEmpty(importPlates)) {
|
||||||
throw new ServiceException(RAW_GOODS_IMPORT_LIST_IS_EMPTY);
|
throw new ServiceException(RAW_GOODS_IMPORT_LIST_IS_EMPTY);
|
||||||
}
|
}
|
||||||
PlateImportRespVO respVO = PlateImportRespVO.builder().createPlates(new ArrayList<PlateSaveReqVO>())
|
PlateImportRespVO respVO = PlateImportRespVO.builder().createPlates(new ArrayList<>())
|
||||||
.updatePlates(new ArrayList<>()).failurePlates(new LinkedHashMap<>()).build();
|
.updatePlates(new ArrayList<>()).failurePlates(new LinkedHashMap<>()).build();
|
||||||
importPlates.forEach(plateSaveReqVO -> {
|
importPlates.forEach(plateSaveReqVO -> {
|
||||||
try {
|
try {
|
||||||
// 改成plateMapper.insertBatch()
|
// 改成plateMapper.insertBatch()
|
||||||
Long id = (long) plateMapper.insert(BeanUtils.toBean(plateSaveReqVO, PlateDO.class)
|
plateMapper.insert(BeanUtils.toBean(plateSaveReqVO, PlateDO.class)
|
||||||
.setOrderId(orderId));
|
.setOrderId(orderId));
|
||||||
respVO.getCreatePlates().add(plateSaveReqVO);
|
respVO.getCreatePlates().add(plateSaveReqVO);
|
||||||
} catch (ServiceException ex) {
|
} catch (ServiceException ex) {
|
||||||
@@ -454,32 +429,25 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deletePlates(Set<Long> ids) {
|
public void deletePlates(Set<Long> ids) {
|
||||||
plateMapper.deleteBatchIds(ids);
|
plateMapper.deleteByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlateDO> getPlatesByOrderId(Long orderId) {
|
public List<PlateDO> getPlatesByOrderId(Long orderId) {
|
||||||
List<PlateDO> plates = plateMapper.selectList(new LambdaQueryWrapper<PlateDO>().eq(PlateDO::getOrderId, orderId));
|
return plateMapper.selectList(new LambdaQueryWrapper<PlateDO>().eq(PlateDO::getOrderId, orderId));
|
||||||
return plates;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PlateRespVO> getPlatePageByTerms(PlateTermsPageReqVO pageReqVO) {
|
public PageResult<PlateRespVO> getPlatePageByTerms(PlateTermsPageReqVO pageReqVO) {
|
||||||
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
IPage<PlateRespVO> pageRes = plateMapper.selectProductList(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), getUserOrganId());
|
IPage<PlateRespVO> pageRes = plateMapper.selectProductList(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), getUserOrganId());
|
||||||
return new PageResult<PlateRespVO>(pageRes.getRecords(), pageRes.getTotal());
|
return new PageResult<>(pageRes.getRecords(), pageRes.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePlateByRawGoodsId(List<GoodsSaveReqVO> createReqVOS) {
|
public void updatePlateByRawGoodsId(List<GoodsSaveReqVO> createReqVOS) {
|
||||||
// 根据生产单id和goods_id查到数据,再更新goods_id
|
// 根据生产单id和goods_id查到数据,再更新goods_id
|
||||||
createReqVOS.forEach(createReqVO -> {
|
createReqVOS.forEach(createReqVO -> {
|
||||||
// plateMapper.update(null,
|
|
||||||
// new LambdaQueryWrapper<PlateDO>()
|
|
||||||
// .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)
|
.in(OrderItemDO::getBodyId, bodyIds)
|
||||||
.select(OrderItemDO::getBodyId)
|
.select(OrderItemDO::getBodyId)
|
||||||
);
|
);
|
||||||
List<Long> plateIds = list.stream().map(BodyPlateIdDTO::getPlateId).collect(Collectors.toList());
|
List<Long> plateIds = list.stream().map(BodyPlateIdDTO::getPlateId).toList();
|
||||||
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, ORDER_PLATE_MODEL.getIndex());
|
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, ORDER_PLATE_MODEL.getIndex());
|
||||||
Map<Long, List<OrderModelDO>> map = orderModelDOS.stream().collect(Collectors.groupingBy(e -> {
|
Map<Long, List<OrderModelDO>> map = orderModelDOS.stream().collect(Collectors.groupingBy(e -> list.stream().filter(f -> Objects.equals(f.getPlateId(), e.getPlateId())).map(BodyPlateIdDTO::getBodyId).findAny().orElse(null)));
|
||||||
return list.stream().filter(f -> Objects.equals(f.getPlateId(), e.getPlateId())).map(BodyPlateIdDTO::getBodyId).findAny().orElse(null);
|
|
||||||
}));
|
|
||||||
|
|
||||||
List<BodyPlateDetailVO> bodyPlateDetailVOS = new ArrayList<>();
|
List<BodyPlateDetailVO> bodyPlateDetailVOS = new ArrayList<>();
|
||||||
List<List<List<Object>>> data = new ArrayList<>();
|
map.entrySet().forEach(e -> bodyPlateDetailVOS.add(BodyPlateDetailVO.builder()
|
||||||
map.entrySet().forEach(e -> {
|
.orderModelList(e.getValue())
|
||||||
bodyPlateDetailVOS.add(BodyPlateDetailVO.builder()
|
.bodyId(e.getKey())
|
||||||
.orderModelList(e.getValue())
|
.build()
|
||||||
.bodyId(e.getKey())
|
));
|
||||||
.build()
|
|
||||||
);
|
|
||||||
});
|
|
||||||
return bodyPlateDetailVOS;
|
return bodyPlateDetailVOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -539,7 +502,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
// 查询排单下的orderGoodsId列表
|
// 查询排单下的orderGoodsId列表
|
||||||
List<Long> goodsId = planMapper.selectPlanOrderGoodsId(planId, orderIds, getUserOrganId());
|
List<Long> goodsId = planMapper.selectPlanOrderGoodsId(planId, orderIds, getUserOrganId());
|
||||||
|
|
||||||
List<GoodsDO> goodsDOS = goodsMapper.selectBatchIds(goodsId);
|
List<GoodsDO> goodsDOS = goodsMapper.selectByIds(goodsId);
|
||||||
|
|
||||||
Map<Long, OrderPlanPlateNumAndAreaRespVO> orderPlanPlateNumAndAreaRespVOMap = new HashMap<>();
|
Map<Long, OrderPlanPlateNumAndAreaRespVO> orderPlanPlateNumAndAreaRespVOMap = new HashMap<>();
|
||||||
|
|
||||||
@@ -642,7 +605,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
List<Long> bodyIds = numVOS.stream().map(OrderBodyNumVO::getBodyId).toList();
|
List<Long> bodyIds = numVOS.stream().map(OrderBodyNumVO::getBodyId).toList();
|
||||||
|
|
||||||
|
|
||||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectByIds(bodyIds);
|
||||||
|
|
||||||
orderBodyDOS.forEach(f -> {
|
orderBodyDOS.forEach(f -> {
|
||||||
|
|
||||||
@@ -754,7 +717,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
SearchResponse<OrderModelDO> search = elasticsearchClient.search(builder.build(), OrderModelDO.class);
|
SearchResponse<OrderModelDO> search = elasticsearchClient.search(builder.build(), OrderModelDO.class);
|
||||||
List<Hit<OrderModelDO>> hits = search.hits().hits();
|
List<Hit<OrderModelDO>> hits = search.hits().hits();
|
||||||
if (CollUtil.isNotEmpty(hits)) {
|
if (CollUtil.isNotEmpty(hits)) {
|
||||||
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
return hits.stream().map(Hit::source).toList();
|
||||||
}
|
}
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@@ -847,14 +810,15 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<OrderBodyViewPlatePageRespVO> getBodyViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) {
|
public PageResult<OrderViewPlatePageRespVO> getViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) {
|
||||||
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
IPage<OrderBodyViewPlatesPageDO> pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), false);
|
IPage<OrderBodyViewPlatesPageDO> pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(),
|
||||||
return new PageResult(BeanUtil.copyToList(pageRes.getRecords(), OrderBodyViewPlatePageRespVO.class), pageRes.getTotal());
|
pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), pageReqVO.getComponentId(), false);
|
||||||
|
return new PageResult<>(BeanUtil.copyToList(pageRes.getRecords(), OrderViewPlatePageRespVO.class), pageRes.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OrderBodyViewPlatePageRespVO> getBodyViewPlatesCadInfo(OrderCadViewPlatePageReqVO reqVO) {
|
public List<OrderViewPlatePageRespVO> getViewPlatesCadInfo(OrderCadViewPlatePageReqVO reqVO) {
|
||||||
Long plateId = reqVO.getPlateNo();
|
Long plateId = reqVO.getPlateNo();
|
||||||
// 匹配板材
|
// 匹配板材
|
||||||
PlateDO plateDO = plateMapper.selectById(plateId);
|
PlateDO plateDO = plateMapper.selectById(plateId);
|
||||||
@@ -885,21 +849,26 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
|
|
||||||
Integer range = reqVO.getRange();
|
Integer range = reqVO.getRange();
|
||||||
if (OrderCadViewPlateRangeEnum.BODY.getRange().equals(range)) {
|
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 {
|
} 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<OrderBodyViewPlatesPageDO> records = viewPlatesPage.getRecords();
|
List<OrderBodyViewPlatesPageDO> records = viewPlatesPage.getRecords();
|
||||||
|
|
||||||
List<OrderBodyViewPlatePageRespVO> resultList = new ArrayList<>();
|
List<OrderViewPlatePageRespVO> resultList = new ArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(records)) {
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
resultList = records.stream().map(item -> {
|
resultList = records.stream().map(item -> {
|
||||||
OrderBodyViewPlatePageRespVO vo = new OrderBodyViewPlatePageRespVO();
|
OrderViewPlatePageRespVO vo = new OrderViewPlatePageRespVO();
|
||||||
BeanUtil.copyProperties(item, vo);
|
BeanUtil.copyProperties(item, vo);
|
||||||
|
|
||||||
vo.setCadViewFileId(cadViewFileId);
|
vo.setCadViewFileId(cadViewFileId);
|
||||||
return vo;
|
return vo;
|
||||||
}).collect(Collectors.toList());
|
}).toList();
|
||||||
}
|
}
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -552,5 +552,8 @@
|
|||||||
<if test="groupId != null">
|
<if test="groupId != null">
|
||||||
AND i.group_id = #{groupId}
|
AND i.group_id = #{groupId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="componentId != null">
|
||||||
|
AND i.comp_id = #{componentId}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.cf.imes.module.executor.dal.mysql.ordercomponent.OrderComponentMapper">
|
||||||
|
<select id="getOrderDetailComponentList" resultType="com.cf.imes.module.executor.dal.dataobject.ordecomponent.OrderComponentDO">
|
||||||
|
select
|
||||||
|
ob.room_id,
|
||||||
|
oc.body_id,
|
||||||
|
oc.id,
|
||||||
|
oc.name
|
||||||
|
from order_component oc
|
||||||
|
left join order_body ob on oc.body_id = ob.id
|
||||||
|
where oc.order_id = #{orderId}
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
+4
@@ -18,3 +18,7 @@ veneer.save.veneerName.length.max=贴皮名称不能超过64个字符
|
|||||||
veneer.defect.save.id.not.null=贴皮ID不能为空
|
veneer.defect.save.id.not.null=贴皮ID不能为空
|
||||||
veneer.classification.name.save.name.not.null=分类名称不能为空
|
veneer.classification.name.save.name.not.null=分类名称不能为空
|
||||||
veneer.classification.name.save.name.length.max=分类名称长度不能超过64
|
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=订单编号不能为空
|
||||||
|
|||||||
+4
@@ -18,3 +18,7 @@ veneer.save.veneerName.length.max=貼皮名稱不能超过64个字元
|
|||||||
veneer.defect.save.id.not.null=貼皮ID不能為空
|
veneer.defect.save.id.not.null=貼皮ID不能為空
|
||||||
veneer.classification.name.save.name.not.null=分類名稱不能為空
|
veneer.classification.name.save.name.not.null=分類名稱不能為空
|
||||||
veneer.classification.name.save.name.length.max=分類名稱不能超過64個字元
|
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=訂單編號不能為空
|
||||||
+4
@@ -18,3 +18,7 @@ veneer.save.veneerName.length.max=veneer name length cannot exceed 64 characters
|
|||||||
veneer.defect.save.id.not.null=veneer id cannot be empty
|
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.not.null=classification name cannot be empty
|
||||||
veneer.classification.name.save.name.length.max=classification name length cannot exceed 64 characters
|
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
|
||||||
+2
@@ -25,3 +25,5 @@ veneer.org.classification.name.exist=组织下分类名称已存在,请检查
|
|||||||
veneer.org.classification.name.empty=组织下分类名称不存在,请前往 [新增] 窗口维护分类名称
|
veneer.org.classification.name.empty=组织下分类名称不存在,请前往 [新增] 窗口维护分类名称
|
||||||
veneer.import.template.download.error=导入模版下载失败
|
veneer.import.template.download.error=导入模版下载失败
|
||||||
veneer.import.org.classification.name.not.exist=第{0}行分类名称{1}不存在,请前往 [新增] 窗口维护分类名称
|
veneer.import.org.classification.name.not.exist=第{0}行分类名称{1}不存在,请前往 [新增] 窗口维护分类名称
|
||||||
|
|
||||||
|
order.component.not.exist=订单部件不存在
|
||||||
+2
@@ -25,3 +25,5 @@ veneer.org.classification.name.exist=組織下分類名稱已存在,請檢查
|
|||||||
veneer.org.classification.name.empty=組織下分類名稱不存在,請前往 [新增] 視窗維護分類名稱
|
veneer.org.classification.name.empty=組織下分類名稱不存在,請前往 [新增] 視窗維護分類名稱
|
||||||
veneer.import.template.download.error=導入模版下載失敗
|
veneer.import.template.download.error=導入模版下載失敗
|
||||||
veneer.import.org.classification.name.not.exist=第{0}行分類名稱{1}不存在,請前往[新增]視窗維護分類名稱
|
veneer.import.org.classification.name.not.exist=第{0}行分類名稱{1}不存在,請前往[新增]視窗維護分類名稱
|
||||||
|
|
||||||
|
order.component.not.exist=訂單部件不存在
|
||||||
+2
@@ -25,3 +25,5 @@ veneer.org.classification.name.exist=The classification name already exists unde
|
|||||||
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.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.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
|
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
|
||||||
Reference in New Issue
Block a user