diff --git a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java index 53e1f080c..17e1bf46c 100644 --- a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java +++ b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java @@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestParam; import jakarta.validation.Valid; +import java.util.Map; +import java.util.Set; + @FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory = @Tag(name = "RPC 服务 - 文件") public interface FileApi { @@ -95,4 +98,8 @@ public interface FileApi { default Long createFileAndReturnId(byte[] content, String fileName) { return createFileAndReturnId(new FileCreateReqDTO().setName(fileName).setPath(null).setContent(content)).getCheckedData(); } + + @PostMapping(PREFIX + "/getFileHashByIds") + @Operation(summary = "根据文件id请求和fileHash的对应关系") + CommonResult> getFileHashMapByIds(@RequestBody Set fileIds); } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java index fb075d022..88fb91fba 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java @@ -2,12 +2,18 @@ package com.cf.imes.module.infra.api.file; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO; +import com.cf.imes.module.infra.dal.dataobject.file.FileDO; import com.cf.imes.module.infra.service.file.FileService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; import jakarta.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + import static com.cf.imes.framework.common.pojo.CommonResult.success; @RestController // 提供 RESTful API 接口,给 Feign 调用 @@ -39,4 +45,13 @@ public class FileApiImpl implements FileApi { return success(fileService.createFileDO(createReqDTO.getName(), createReqDTO.getPath(), createReqDTO.getContent())); } + + @Override + public CommonResult> getFileHashMapByIds(Set fileIds) { + List fileDOList = fileService.getByIds(fileIds); + return success(fileDOList.stream().collect(Collectors.toMap( + FileDO::getId, + FileDO::getName + ))); + } } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/controller/admin/file/FileController.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/controller/admin/file/FileController.java index c38c06127..0fe57e108 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/controller/admin/file/FileController.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/controller/admin/file/FileController.java @@ -29,6 +29,8 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; +import java.io.IOException; + import static com.cf.imes.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 文件存储") @@ -44,7 +46,7 @@ public class FileController { @PostMapping("/upload") @Operation(summary = "上传文件") @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 - public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws Exception { + public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws IOException { MultipartFile file = uploadReqVO.getFile(); String path = uploadReqVO.getPath(); return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); @@ -53,8 +55,8 @@ public class FileController { @PostMapping("/cadview") @Operation(summary = "上传CAD图纸数据") @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 - public CommonResult uploadCadViewFile(@RequestPart("file") MultipartFile file) throws Exception { - return success(fileService.createFileDO("cadViewFile", null, file.getBytes())); + public CommonResult uploadCadViewFile(@RequestPart("file") MultipartFile file) throws IOException { + return success(fileService.createFileDO(file.getOriginalFilename(), null, file.getBytes())); } @@ -62,7 +64,7 @@ public class FileController { @Operation(summary = "删除文件") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('infra:file:delete')") - public CommonResult deleteFile(@RequestParam("id") Long id) throws Exception { + public CommonResult deleteFile(@RequestParam("id") Long id) { fileService.deleteFile(id); return success(true); } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java index 7cf3a6cbf..3d59e2a95 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java @@ -4,6 +4,9 @@ import com.cf.imes.module.infra.controller.admin.file.vo.file.FilePageReqVO; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.module.infra.dal.dataobject.file.FileDO; +import java.util.List; +import java.util.Set; + /** * 文件 Service 接口 * @@ -70,4 +73,12 @@ public interface FileService { * @return */ Boolean deleteFileByPath(String path); + + /** + * 通过文件id获取文件列表 + * + * @param ids + * @return + */ + List getByIds(Set ids); } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java index 6b8ae792d..14b1324f2 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java @@ -17,7 +17,9 @@ import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import java.util.List; import java.util.Objects; +import java.util.Set; import static com.cf.imes.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; @@ -170,4 +172,8 @@ public class FileServiceImpl implements FileService { return Boolean.TRUE; } + @Override + public List getByIds(Set ids) { + return fileMapper.selectByIds(ids); + } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java index c70149eae..47d044619 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderCadViewPlatePageReqVO.java @@ -13,6 +13,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; +import java.util.Set; + @Schema(description = "管理后台 - WEBCAD视图板材分组条件") @Data @ToString(callSuper = true) @@ -25,19 +27,12 @@ public class OrderCadViewPlatePageReqVO extends PageParam { @NotNull(message = "{order.cadview.plate.page.orderid.not.null}",groups = {OrderCadViewPageGroup.class}) private Long orderId; - @Schema(description = "房间编号", example = "1024") - private Long roomId; - @Schema(description = "柜体编号", example = "1024") - private Long bodyId; + private Set bodyIds; @Schema(description = "加工组编号", example = "1024") private Long groupId; - @Schema(description = "板件编号", example = "1024") - @NotNull(message = "{order.cadview.plate.cadinfo.plateno.not.null}", groups = OrderCadViewInfoGroup.class) - private Long plateNo; - @Schema(description = "部件编号", example = "1024") private Long componentId; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/product/OrderBodyRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/product/OrderBodyRespVO.java index d6472fab1..a35b9d654 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/product/OrderBodyRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/product/OrderBodyRespVO.java @@ -55,10 +55,6 @@ public class OrderBodyRespVO { @ExcelProperty("异型数量") private Short unregularNum; -// @Schema(description = "生产单详情内容", requiredMode = Schema.RequiredMode.REQUIRED) -// @ExcelProperty("生产单详情内容") -// private List orderItemDOS; - @Schema(description = "文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰") @ExcelProperty("文件名") private String filename; @@ -70,4 +66,10 @@ public class OrderBodyRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; + + @Schema(description = "CAD图纸文件ID") + private Long cadViewFileId; + + @Schema(description = "CAD图纸文件哈希值") + private String fileHash; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java index 707c5deb6..8f5f1b3a2 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/ordercomponent/vo/OrderComponentRespVO.java @@ -19,4 +19,7 @@ public class OrderComponentRespVO { @Schema(description = "cad图纸数据文件id") private Long cadViewFileId; + + @Schema(description = "CAD图纸文件哈希值") + private String fileHash; } 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 85cecc012..1cd8bd915 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 @@ -136,15 +136,15 @@ public class PlateController { return success(plateService.createNewPlate(reqVO)); } - @GetMapping("/body/view/page") + @PostMapping("/body/view/page") @Operation(summary = "获取柜体下的板件视图分页列表数据") - public CommonResult> getBodyViewPlatesPage(@Validated(OrderCadViewPageGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { + public CommonResult> getBodyViewPlatesPage(@Validated(OrderCadViewPageGroup.class) @RequestBody OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { return success(plateService.getBodyViewPlatesPage(orderCadViewPlatePageReqVO)); } - @GetMapping("/body/view/cadinfo") + @PostMapping("/body/view/cadinfo") @Operation(summary = "获取板件对应柜体下的所有板件视图列表数据") - public CommonResult> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { + public CommonResult> getBodyViewPlatesCadInfo(@Validated(OrderCadViewInfoGroup.class) @RequestBody OrderCadViewPlatePageReqVO orderCadViewPlatePageReqVO) { return success(plateService.getBodyViewPlatesCadInfo(orderCadViewPlatePageReqVO)); } } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java index ddfcc0948..194fac0cf 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrderBodyViewPlatesPageDO.java @@ -86,4 +86,14 @@ public class OrderBodyViewPlatesPageDO { * 部件id */ private Long compId; + + /** + * 柜体id + */ + private Long bodyId; + + /** + * cad图纸文件id + */ + private Long cadViewFileId; } 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 53dc89780..a0ac6f840 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 @@ -192,20 +192,16 @@ public interface OrderItemMapper extends BaseMapperX { * * @param page 分页参数 * @param orderId 订单ID - * @param roomId 房间ID - * @param bodyId 柜体ID + * @param bodyIds 柜体ID列表 * @param groupId 加工组ID - * @param organId 组织ID * @param componentIds 部件ID列表 * @param cadView 是否需要cad图纸内信息:cad_view_id、seal_left、seal_down、seal_right、seal_up * @return */ IPage selectBodyViewPlatesPage(@Param("page") IPage page, @Param("orderId") Long orderId, - @Param("roomId") Long roomId, - @Param("bodyId") Long bodyId, + @Param("bodyIds") Set bodyIds, @Param("groupId") Long groupId, - @Param("organId") Long organId, @Param("componentIds") Set componentIds, @Param("cadView") boolean cadView); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index f01164e1e..a4e1ce651 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -1,5 +1,6 @@ package com.cf.imes.module.executor.service.order; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; @@ -13,6 +14,7 @@ import com.cf.imes.framework.common.enums.DeletedCodeEnum; import com.cf.imes.framework.common.enums.OrderPackageStatusEnum; import com.cf.imes.framework.common.enums.OrderPackageTypeEnum; import com.cf.imes.framework.common.exception.ServiceException; +import com.cf.imes.framework.common.pojo.CommonResult; 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; @@ -32,7 +34,6 @@ import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRema import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO; import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderComponentRespVO; import com.cf.imes.module.executor.controller.admin.ordercomponent.vo.OrderDetailComponentListReqVO; -import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy; import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO; import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; @@ -76,6 +77,7 @@ 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.elasticsearch.EsUtils; import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataTypeVo; +import com.cf.imes.module.infra.api.file.FileApi; import org.apache.commons.lang3.StringUtils; import org.springframework.aop.framework.AopContext; import org.springframework.beans.factory.annotation.Autowired; @@ -188,6 +190,9 @@ public class OrderServiceImpl implements OrderService { @Autowired private OrderImportHandlerFactory orderImportHandlerFactory; + @Autowired + private FileApi fileApi; + @Override public Long createOrder(OrderSaveReqVO createReqVO) { //校验手机号是否合法 @@ -263,7 +268,19 @@ public class OrderServiceImpl implements OrderService { @Override public List getOrderBody(Long orderId, Integer deleted) { - return BeanUtils.toBean(orderBodyMapper.selectList(orderId, deleted, getUserOrganId()), OrderBodyRespVO.class); + List bodyRespVOS = BeanUtil.copyToList(orderBodyMapper.selectList(orderId, deleted, getUserOrganId()), OrderBodyRespVO.class); + // 获取文件 fileHash + Set cadViewFileIds = bodyRespVOS.stream().map(OrderBodyRespVO::getCadViewFileId).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(cadViewFileIds)) { + CommonResult> fileHashMapByIdsResult = fileApi.getFileHashMapByIds(cadViewFileIds); + if (fileHashMapByIdsResult.isSuccess()) { + Map fileHashMapByIds = fileHashMapByIdsResult.getData(); + bodyRespVOS.forEach(body -> + body.setFileHash(fileHashMapByIds.get(body.getCadViewFileId())) + ); + } + } + return bodyRespVOS; } @Override 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 46b0a40e2..f2860be67 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.exception.ServiceException; +import com.cf.imes.framework.common.pojo.CommonResult; 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; @@ -29,6 +30,7 @@ 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.plate.PlateMapper; import com.cf.imes.module.executor.enums.ErrorCodeConstants; +import com.cf.imes.module.infra.api.file.FileApi; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -48,7 +50,6 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; -import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_COMPONENT_DELETE_PLATE_IN_PLAN; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_COMPONENT_NOT_EXIST; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_COMPONENT_NO_NEED_TO_RESTORE; @@ -82,6 +83,9 @@ public class OrderComponentServiceImpl implements OrderComponentService { @Resource private OrderBodyMapper orderBodyMapper; + @Resource + private FileApi fileApi; + @Override public List getOrderComponentList(OrderDetailComponentListReqVO reqVO) { List resultList = new ArrayList<>(); @@ -150,7 +154,19 @@ public class OrderComponentServiceImpl implements OrderComponentService { .eqIfPresent(OrderComponentDO::getProcessStatus, reqVO.getProcessStatus()) .select(OrderComponentDO::getId, OrderComponentDO::getPid, OrderComponentDO::getName, OrderComponentDO::getCadViewFileId)); - return BeanUtil.copyToList(topComponentList, OrderComponentRespVO.class); + List orderComponentRespVOS = BeanUtil.copyToList(topComponentList, OrderComponentRespVO.class); + // 3、获取文件 fileHash + Set cadViewFileIds = orderComponentRespVOS.stream().map(OrderComponentRespVO::getCadViewFileId).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(cadViewFileIds)) { + CommonResult> fileHashMapByIdsResult = fileApi.getFileHashMapByIds(cadViewFileIds); + if (fileHashMapByIdsResult.isSuccess()) { + Map fileHashMapByIds = fileHashMapByIdsResult.getData(); + orderComponentRespVOS.forEach(component -> + component.setFileHash(fileHashMapByIds.get(component.getCadViewFileId())) + ); + } + } + return orderComponentRespVOS; } @Override @@ -189,7 +205,7 @@ public class OrderComponentServiceImpl implements OrderComponentService { // 分页查询板件 PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, orderId, null, - null, null, getUserOrganId(), queryComponentIds, false); + null, queryComponentIds, false); long total = pageRes.getTotal(); List records = pageRes.getRecords(); @@ -235,7 +251,7 @@ public class OrderComponentServiceImpl implements OrderComponentService { // 查询所有板件的视图所需信息 PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); IPage viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderId, null, - null, null, getUserOrganId(), componentIds, true); + null, componentIds, true); List records = viewPlatesPage.getRecords(); List resultList = new ArrayList<>(); 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 e01bb6f04..441dc25b7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java @@ -811,37 +811,51 @@ public class PlateServiceImpl implements PlateService { @Override public PageResult getBodyViewPlatesPage(OrderCadViewPlatePageReqVO pageReqVO) { + Set bodyIds = pageReqVO.getBodyIds(); + if (CollUtil.isEmpty(bodyIds)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + List orderBodyDOList = orderBodyMapper.selectByIds(bodyIds); + if (CollUtil.isEmpty(orderBodyDOList)) { + throw new ServiceException(ORDER_BODY_NOT_EXISTS); + } + + // 整理出body_id和cad图纸id的关系 + Map bodyIdAndCadViewFileIdMap = orderBodyDOList.stream() + .collect(Collectors.toMap(OrderBodyDO::getId, OrderBodyDO::getCadViewFileId)); + PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), - pageReqVO.getBodyId(), pageReqVO.getGroupId(), getUserOrganId(), null, false); - return new PageResult<>(BeanUtil.copyToList(pageRes.getRecords(), OrderViewPlatePageRespVO.class), pageRes.getTotal()); + IPage pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), + bodyIds, pageReqVO.getGroupId(), null, false); + + List records = pageRes.getRecords(); + // cad图纸id赋到每块板上 + if(CollUtil.isNotEmpty(records)) { + records.forEach(item -> item.setCadViewFileId(bodyIdAndCadViewFileIdMap.get(item.getBodyId()))); + } + return new PageResult<>(BeanUtil.copyToList(records, OrderViewPlatePageRespVO.class), pageRes.getTotal()); } @Override public List getBodyViewPlatesCadInfo(OrderCadViewPlatePageReqVO reqVO) { - Long plateId = reqVO.getPlateNo(); - // 匹配板材 - PlateDO plateDO = plateMapper.selectById(plateId); - if (ObjectUtil.isNull(plateDO)) { - throw new ServiceException(PLATE_NOT_EXISTS); - } + Long orderId = reqVO.getOrderId(); + OrderDO orderDO = orderMapper.selectById(orderId); + AssertUtils.notEmpty(orderDO, ORDER_NOT_EXISTS); - // 匹配orderItem - OrderItemDO orderItemDO = orderItemMapper.selectOne(new LambdaUpdateWrapper() - .eq(OrderItemDO::getPlateId, plateId) - .eq(OrderItemDO::getOrderId, plateDO.getOrderId()) - .eq(OrderItemDO::getOrganId, plateDO.getOrganId())); - if (ObjectUtil.isNull(orderItemDO)) { - throw new ServiceException(PLATE_NOT_EXISTS); - } + Set bodyIds = reqVO.getBodyIds(); // 匹配柜体 - OrderBodyDO orderBodyDO = orderBodyMapper.selectById(orderItemDO.getBodyId()); - if (ObjectUtil.isNull(orderBodyDO)) { + if(CollUtil.isEmpty(bodyIds)) { + return Collections.emptyList(); + } + List orderBodyDOList = orderBodyMapper.selectByIds(bodyIds); + if (CollUtil.isEmpty(orderBodyDOList)) { throw new ServiceException(ORDER_BODY_NOT_EXISTS); } - Long cadViewFileId = orderBodyDO.getCadViewFileId(); + // 整理出body_id和cad图纸id的关系 + Map bodyIdAndCadViewFileIdMap = orderBodyDOList.stream() + .collect(Collectors.toMap(OrderBodyDO::getId, OrderBodyDO::getCadViewFileId)); // 查询所有板件的视图所需信息 PageDTO page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE); @@ -849,24 +863,16 @@ public class PlateServiceImpl implements PlateService { Integer range = reqVO.getRange(); if (OrderCadViewPlateRangeEnum.BODY.getRange().equals(range)) { - viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), - orderItemDO.getBodyId(), null, orderItemDO.getOrganId(), null, true); + viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderId, bodyIds, null, null, true); } else { - viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), - orderItemDO.getBodyId(), orderItemDO.getGroupId(), orderItemDO.getOrganId(), null, true); + viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderId, bodyIds, reqVO.getGroupId(), null, true); } List records = viewPlatesPage.getRecords(); - List resultList = new ArrayList<>(); - if (CollUtil.isNotEmpty(records)) { - resultList = records.stream().map(item -> { - OrderViewPlatePageRespVO vo = new OrderViewPlatePageRespVO(); - BeanUtil.copyProperties(item, vo); - - vo.setCadViewFileId(cadViewFileId); - return vo; - }).toList(); + // cad图纸id赋到每块板上 + if(CollUtil.isNotEmpty(records)) { + records.forEach(item -> item.setCadViewFileId(bodyIdAndCadViewFileIdMap.get(item.getBodyId()))); } - return resultList; + return BeanUtil.copyToList(records, OrderViewPlatePageRespVO.class); } } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index 003de59ce..ccd096864 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 @@ -535,9 +535,9 @@