diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java index 81cddc1a68..2c01fd38f6 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java @@ -77,8 +77,8 @@ public class MoldBrandController { @Operation(summary = "获得模具型号分页") @PreAuthorize("@ss.hasPermission('erp:mold-brand:query')") public CommonResult> getMoldBrandPage(@Valid MoldBrandPageReqVO pageReqVO) { - PageResult pageResult = moldBrandService.getMoldBrandPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, MoldBrandRespVO.class)); + PageResult pageResult = moldBrandService.getMoldBrandPage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") @@ -88,10 +88,9 @@ public class MoldBrandController { public void exportMoldBrandExcel(@Valid MoldBrandPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = moldBrandService.getMoldBrandPage(pageReqVO).getList(); + List list = moldBrandService.getMoldBrandPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "模具型号.xls", "数据", MoldBrandRespVO.class, - BeanUtils.toBean(list, MoldBrandRespVO.class)); + ExcelUtils.write(response, "模具型号.xls", "数据", MoldBrandRespVO.class, list); } // ==================== 子表(模具) ==================== @@ -100,8 +99,7 @@ public class MoldBrandController { @Operation(summary = "获得模具分页") @Parameter(name = "brandId", description = "型号id") @PreAuthorize("@ss.hasPermission('erp:mold-brand:query')") - public CommonResult> getMoldPage(PageParam pageReqVO, - @RequestParam("brandId") Long brandId) { + public CommonResult> getMoldPage(PageParam pageReqVO, @RequestParam("brandId") Long brandId) { return success(moldBrandService.getMoldPage(pageReqVO, brandId)); } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java index da927a8b10..9bbdcefbcc 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java @@ -33,8 +33,10 @@ public class MoldBrandRespVO { private String moldType; @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2336") - @ExcelProperty("产品ID") private Long productId; + @Schema(description = "产品", requiredMode = Schema.RequiredMode.REQUIRED, example = "2336") + @ExcelProperty("产品ID") + private String productName; @Schema(description = "预期寿命(小时)") @ExcelProperty("预期寿命(小时)") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldRespVO.java index e032bb7631..f6568255f3 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldRespVO.java @@ -29,8 +29,10 @@ public class MoldRespVO { private String name; @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19527") - @ExcelProperty("单位ID") private Long unitId; + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "个") + @ExcelProperty("单位") + private String unitName; @Schema(description = "机台ID", example = "24428") @ExcelProperty("机台ID") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java index 6494ac2b3c..b016d6fd11 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java @@ -52,7 +52,7 @@ public interface MoldBrandService { * @param pageReqVO 分页查询 * @return 模具型号分页 */ - PageResult getMoldBrandPage(MoldBrandPageReqVO pageReqVO); + PageResult getMoldBrandPage(MoldBrandPageReqVO pageReqVO); // ==================== 子表(模具) ==================== @@ -63,7 +63,7 @@ public interface MoldBrandService { * @param brandId 型号id * @return 模具分页 */ - PageResult getMoldPage(PageParam pageReqVO, Long brandId); + PageResult getMoldPage(PageParam pageReqVO, Long brandId); /** * 创建模具 diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java index 1ee84a0369..343228d6ef 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java @@ -1,5 +1,14 @@ package cn.iocoder.yudao.module.erp.service.mold; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; +import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; @@ -18,6 +27,7 @@ import cn.iocoder.yudao.module.erp.dal.mysql.mold.MoldMapper; import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*; /** @@ -33,7 +43,10 @@ public class MoldBrandServiceImpl implements MoldBrandService { private MoldBrandMapper moldBrandMapper; @Resource private MoldMapper moldMapper; - + @Resource + private ErpProductUnitService productUnitService; + @Resource + private ErpProductService productService; @Override public Long createMoldBrand(MoldBrandSaveReqVO createReqVO) { // 插入 @@ -76,17 +89,40 @@ public class MoldBrandServiceImpl implements MoldBrandService { } @Override - public PageResult getMoldBrandPage(MoldBrandPageReqVO pageReqVO) { - return moldBrandMapper.selectPage(pageReqVO); + public PageResult getMoldBrandPage(MoldBrandPageReqVO pageReqVO) { + PageResult pageResult = moldBrandMapper.selectPage(pageReqVO); + return new PageResult<>(buildMoldBrandVOList(pageResult.getList()),pageResult.getTotal()); + } + private List buildMoldBrandVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map map = productService.getProductMap( + convertSet(list, MoldBrandDO::getProductId)); + return BeanUtils.toBean(list, MoldBrandRespVO.class, item -> { + MapUtils.findAndThen(map, item.getProductId(), + product -> item.setProductName(product.getName())); + }); } - // ==================== 子表(模具) ==================== @Override - public PageResult getMoldPage(PageParam pageReqVO, Long brandId) { - return moldMapper.selectPage(pageReqVO, brandId); + public PageResult getMoldPage(PageParam pageReqVO, Long brandId) { + PageResult pageResult = moldMapper.selectPage(pageReqVO, brandId); + return new PageResult<>(buildMoldVOList(pageResult.getList()), pageResult.getTotal()); } + private List buildMoldVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map unitMap = productUnitService.getProductUnitMap( + convertSet(list, MoldDO::getUnitId)); + return BeanUtils.toBean(list, MoldRespVO.class, product -> { + MapUtils.findAndThen(unitMap, product.getUnitId(), + unit -> product.setUnitName(unit.getName())); + }); + } @Override public Long createMold(MoldDO mold) { moldMapper.insert(mold); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java index a947e3b9d2..6add0ed5f3 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProduc import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ProductSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; import javax.validation.Valid; import java.util.Collection; @@ -107,5 +108,14 @@ public interface ErpProductService { * @return 产品数量 */ Long getProductCountByUnitId(Long unitId); - + /** + * 获得产品列表 + * + * @param ids 编号数组 + * @return 产品列表 + */ + List getProductList(Collection ids); + default Map getProductMap(Collection ids) { + return convertMap(getProductList(ids), ErpProductDO::getId); + } } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java index c264b8e749..f3c3ac83cf 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java @@ -148,5 +148,8 @@ public class ErpProductServiceImpl implements ErpProductService { public Long getProductCountByUnitId(Long unitId) { return productMapper.selectCountByUnitId(unitId); } - + @Override + public List getProductList(Collection ids) { + return productMapper.selectBatchIds(ids); + } } \ No newline at end of file