diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/erp/ErpMaterialPageVo.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/erp/ErpMaterialPageVo.java new file mode 100644 index 000000000..fc34a2492 --- /dev/null +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/erp/ErpMaterialPageVo.java @@ -0,0 +1,36 @@ +package com.bsd.pjcloud.canteen.vo.erp; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(description = "erp选择食材分页vo") +public class ErpMaterialPageVo { + /** + * id + */ + @Schema(description="食材id") + private Long id; + + /** + * 商品名称 + */ + @Schema(description="食材名称") + private String name; + + /** + * 商品单位 + */ + @Schema(description="食材单位") + private String unit; + + + /** + * 当前库存数量 + */ + @Schema(description="当前库存数量") + private Double stock; +} diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java index 635284e16..7b2330db6 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java @@ -123,4 +123,17 @@ public class CanteenErpMaterialController { public List export(CanteenErpMaterialEntity canteenErpMaterial,Long[] ids) { return canteenErpMaterialService.list(Wrappers.lambdaQuery(canteenErpMaterial).in(ArrayUtil.isNotEmpty(ids), CanteenErpMaterialEntity::getId, ids)); } + + + /** + * erp选择食材分页数据 + * 分页查询 + * @param page 分页对象 + * @return + */ + @Operation(summary = "选择食材分页数据" , description = "选择食材分页数据" ) + @GetMapping("/erpMaterialPage" ) + public R getErpMaterialPage(@ParameterObject Page page, @RequestParam("name")String name) { + return R.ok(canteenErpMaterialService.getErpMaterialPage(page, name)); + } } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsController.java index 4c582dcec..f41baa105 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsController.java @@ -34,7 +34,7 @@ import java.util.Objects; @RestController @RequiredArgsConstructor @RequestMapping("/canteenInventoryRecords" ) -@Tag(description = "canteenInventoryRecords" , name = "采购记录表管理" ) +@Tag(description = "canteenInventoryRecords" , name = "食堂进销管理" ) @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class CanteenInventoryRecordsController { diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsItemController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsItemController.java index 2a2134dac..d354e35dc 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsItemController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenInventoryRecordsItemController.java @@ -31,7 +31,7 @@ import java.util.Objects; @RestController @RequiredArgsConstructor @RequestMapping("/canteenInventoryRecordsItem" ) -@Tag(description = "canteenInventoryRecordsItem" , name = "采购记录明细表管理" ) +@Tag(description = "canteenInventoryRecordsItem" , name = "食堂进销管理明细管理" ) @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class CanteenInventoryRecordsItemController { diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenErpMaterialService.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenErpMaterialService.java index 51e44674a..676682996 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenErpMaterialService.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenErpMaterialService.java @@ -34,4 +34,13 @@ public interface CanteenErpMaterialService extends IService pageScope(Page page, CanteenErpMaterialEntity canteenErpMaterial); CanteenErpMaterialVO getCanteenErpMaterialVOById(Long id); + + + /** + * erp选择分页 + * @param page + * @param name + * @return + */ + Object getErpMaterialPage(Page page, String name); } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenErpMaterialServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenErpMaterialServiceImpl.java index 728717362..561929812 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenErpMaterialServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenErpMaterialServiceImpl.java @@ -11,12 +11,20 @@ import com.bsd.pjcloud.canteen.mapper.CanteenErpMaterialMapper; import com.bsd.pjcloud.canteen.mapper.CanteenStockMapper; import com.bsd.pjcloud.canteen.service.CanteenErpMaterialService; import com.bsd.pjcloud.canteen.vo.erp.CanteenErpMaterialVO; +import com.bsd.pjcloud.canteen.vo.erp.ErpMaterialPageVo; +import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * 原料表 * @@ -97,4 +105,40 @@ public class CanteenErpMaterialServiceImpl extends ServiceImpl getErpMaterialPage(Page page, String name) { + LambdaQueryWrapper smErpUnitEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + smErpUnitEntityLambdaQueryWrapper.like(StringUtils.isNotBlank(name), CanteenErpMaterialEntity::getName, name); + Page spuPage = baseMapper.selectPageByScope(page, smErpUnitEntityLambdaQueryWrapper, DataScope.of()); + + // 将 SmErpSpuEntity 转换为 SmErpPageScopeVo + List voList = spuPage.getRecords().stream() + .map(entity -> BeanUtils.toBean(entity, ErpMaterialPageVo.class)) + .collect(Collectors.toList()); + + List materialIds = voList.stream().map(vo -> vo.getId()).collect(Collectors.toList()); + + // 批量查询库存信息 + List stocks = canteenStockMapper.selectList( + new LambdaQueryWrapper() + .in(CanteenStockEntity::getItemId, materialIds)); + + // 建立SPU ID与库存的映射关系 + Map stockMap = stocks.stream() + .collect(Collectors.toMap(CanteenStockEntity::getItemId, smErpStockEntity -> smErpStockEntity)); + + + voList.stream().forEach(vo -> { + //库存 + CanteenStockEntity smErpStockEntity = stockMap.get(vo.getId()); + vo.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0); + }); + + // 创建新的 Page 对象并设置数据 + Page resultPage = new Page<>(); + org.springframework.beans.BeanUtils.copyProperties(spuPage, resultPage); + resultPage.setRecords(voList); + return resultPage; + } } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenInventoryRecordsMapper.xml b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenInventoryRecordsMapper.xml index 19f38a044..97f258397 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenInventoryRecordsMapper.xml +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenInventoryRecordsMapper.xml @@ -31,7 +31,8 @@