diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/erpspu/SmErpSpuPageDto.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/erpspu/SmErpSpuPageDto.java new file mode 100644 index 000000000..1885a693a --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/erpspu/SmErpSpuPageDto.java @@ -0,0 +1,98 @@ +package com.bsd.pjcloud.supermarket.dto.erpspu; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.bsd.pjcloud.common.core.util.TenantTable; +import com.bsd.pjcloud.supermarket.entity.SmErpAuxiliaryCodeEntity; +import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 商品spu + * + * @author zjf + * @date 2024-12-23 10:42:43 + */ +@Data +@TenantTable +@TableName("sm_erp_spu") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "商品spu") +public class SmErpSpuPageDto extends Model { + + + /** + * 商品 SPU 编号,自增 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="商品 SPU 编号,自增") + private Long id; + + /** + * 货号 + */ + @Schema(description="货号") + private String productCode; + + /** + * 自编码/条码 + */ + @Schema(description="自编码/条码") + private String barCode; + + /** + * 商品名称 + */ + @Schema(description="商品名称") + private String productName; + + + + /** + * 商品详情 + */ + @Schema(description="商品详情") + private String description; + + /** + * 商品分类编号 + */ + @Schema(description="商品分类编号") + private Long categoryId; + + + /** + * 排序字段 + */ + @Schema(description="排序字段") + private Integer sort; + + /** + * 商品状态: 1 上架(开启) 0 下架(禁用) -1 回收 + */ + @Schema(description="商品状态: 1 上架(开启) 0 下架(禁用) -1 回收") + private String status; + + + + /** + * 商品性质(字典) + */ + @Schema(description="商品性质(字典)") + private String productNature; + + + /** + * 货商id + */ + @Schema(description="货商id") + private Long supplierId; + + +} \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/erpspu/SmErpSpuPageVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/erpspu/SmErpSpuPageVo.java new file mode 100644 index 000000000..b5dcc5cd1 --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/erpspu/SmErpSpuPageVo.java @@ -0,0 +1,159 @@ +package com.bsd.pjcloud.supermarket.vo.erpspu; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.bsd.pjcloud.common.core.util.TenantTable; +import com.bsd.pjcloud.supermarket.entity.SmErpAuxiliaryCodeEntity; +import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 商品spu + * + * @author zjf + * @date 2024-12-23 10:42:43 + */ +@Data +@Schema(description = "商品spu") +public class SmErpSpuPageVo { + + + /** + * 商品 SPU 编号,自增 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="商品 SPU 编号,自增") + private Long id; + + /** + * 货号 + */ + @Schema(description="货号") + private String productCode; + + /** + * 自编码/条码 + */ + @Schema(description="自编码/条码") + private String barCode; + + /** + * 商品名称 + */ + @Schema(description="商品名称") + private String productName; + + /** + * 单位 + */ + @Schema(description="单位") + private String unit; + + /** + * 商品分类编号 + */ + @Schema(description="商品分类编号") + private Long categoryId; + + /** + * 商品封面图 + */ + @Schema(description="商品封面图") + private String picUrl; + + + /** + * 排序字段 + */ + @Schema(description="排序字段") + private Integer sort; + + /** + * 商品状态: 1 上架(开启) 0 下架(禁用) -1 回收 + */ + @Schema(description="商品状态: 1 上架(开启) 0 下架(禁用) -1 回收") + private String status; + + /** + * 成本单价,单位: 分 + */ + @Schema(description="成本单价,单位: 分") +// @JsonSerialize(using = MoneySerializer.class) // 分 -> 元 +// @JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分 + private Double costPrice; + + /** + * 库存 + */ + @Schema(description="库存") + private Double stock; + + + /** + * 进价(分为单位) + */ + @Schema(description="进价(分为单位)") +// @JsonSerialize(using = MoneySerializer.class) // 分 -> 元 +// @JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分 + private Integer purchasePrice; + + /** + * 零售价(分为单位) + */ + @Schema(description="零售价(分为单位)") +// @JsonSerialize(using = MoneySerializer.class) // 分 -> 元 +// @JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分 + private Integer retailPrice; + + /** + * 商品性质(字典) + */ + @Schema(description="商品性质(字典)") + private String productNature; + + + /** + * 辅助条码id + */ + @Schema(description="辅助条码id") + private String auxiliaryBarcodeId; + + /** + * 品牌id + */ + @Schema(description="品牌id") + private Long brandId; + + /** + * 货商id + */ + @Schema(description="货商id") + private Long supplierId; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + + + + + + +} \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java index 50b675e32..7dc4b52cf 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java @@ -17,6 +17,7 @@ import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockByCodeReqDTO; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO; import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; +import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuPageDto; import com.bsd.pjcloud.supermarket.entity.SmErpAuxiliaryCodeEntity; import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; import com.bsd.pjcloud.supermarket.entity.SmErpStockEntity; @@ -82,13 +83,8 @@ public class SmErpSpuController { @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/page" ) @PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" ) - public R getSupermarketSpuPage(@ParameterObject Page page, @ParameterObject SmErpSpuEntity supermarketSpu) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(StringUtils.isNotBlank(supermarketSpu.getProductCode()), SmErpSpuEntity::getProductCode,supermarketSpu.getProductCode()); - wrapper.eq(StringUtils.isNotBlank(supermarketSpu.getBarCode()), SmErpSpuEntity::getBarCode,supermarketSpu.getBarCode()); - wrapper.like(StringUtils.isNotBlank(supermarketSpu.getProductName()), SmErpSpuEntity::getProductName,supermarketSpu.getProductName()); - wrapper.orderByDesc(SmErpSpuEntity::getCreateTime).orderByDesc(SmErpSpuEntity::getId); - return R.ok(smErpSpuService.pageScope(page, wrapper)); + public R getSupermarketSpuPage(@ParameterObject Page page, @ParameterObject SmErpSpuPageDto supermarketSpu) { + return R.ok(smErpSpuService.pageScope(page, supermarketSpu)); } /** diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java index 5d7c0c7be..d69d39c7b 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java @@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO; +import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuPageDto; import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; import com.bsd.pjcloud.supermarket.vo.ad.SpuVo; +import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuPageVo; import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -47,4 +49,7 @@ public interface SmErpSpuMapper extends PjcloudBaseMapper { List exportSupermarketSpuStockExcel(@Param("supermarketSpu") SmErpSpuEntity supermarketSpu, @Param("ids") Long[] ids,DataScope dataScope); + + + Page selectPageXmlByScope(@Param("page") Page page, @Param("supermarketSpuPageDto") SmErpSpuPageDto smErpSpuPageDto,DataScope of); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java index 348006929..7fdb71b62 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java @@ -10,6 +10,7 @@ import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockByCodeReqDTO; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO; import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO; import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; +import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuPageDto; import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; import com.bsd.pjcloud.supermarket.vo.ad.SmErpSpuDetailsVo; import com.bsd.pjcloud.supermarket.vo.ad.SpuVo; @@ -53,10 +54,10 @@ public interface SmErpSpuService extends IService { /** * 分页查询 * @param page - * @param wrapper + * @param * @return */ - Object pageScope(Page page, LambdaQueryWrapper wrapper); + Object pageScope(Page page, SmErpSpuPageDto smErpSpuPageDto); /** * 根据条件查询所有数据,app/收银机接口 diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java index 192f86cbe..43314a3f0 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java @@ -3,6 +3,7 @@ package com.bsd.pjcloud.supermarket.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum; @@ -18,6 +19,7 @@ import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockByCodeReqDTO; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO; import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO; import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; +import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuPageDto; import com.bsd.pjcloud.supermarket.dto.inventoryrecords.UpdateStockDTO; import com.bsd.pjcloud.supermarket.entity.*; import com.bsd.pjcloud.supermarket.mapper.*; @@ -32,6 +34,7 @@ import com.bsd.pjcloud.supermarket.vo.ad.SmErpSpuDetailsVo; import com.bsd.pjcloud.supermarket.vo.ad.SmErpUnitVo; import com.bsd.pjcloud.supermarket.vo.cgplan.ErpSpuWithUnitPageVo; import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo; +import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuPageVo; import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel; import com.bsd.pjcloud.supermarket.vo.sm.smspu.SmErpPageScopeVo; import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; @@ -495,28 +498,38 @@ public class SmErpSpuServiceImpl extends ServiceImpl wrapper) { - Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + public Object pageScope(Page page, SmErpSpuPageDto smErpSpuPageDto) { +// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); +// wrapper.eq(StringUtils.isNotBlank(supermarketSpu.getProductCode()), SmErpSpuEntity::getProductCode,supermarketSpu.getProductCode()); +// wrapper.eq(StringUtils.isNotBlank(supermarketSpu.getBarCode()), SmErpSpuEntity::getBarCode,supermarketSpu.getBarCode()); +// wrapper.like(StringUtils.isNotBlank(supermarketSpu.getProductName()), SmErpSpuEntity::getProductName,supermarketSpu.getProductName()); +// wrapper.eq(null!=supermarketSpu.getCategoryId(), SmErpSpuEntity::getCategoryId,supermarketSpu.getCategoryId()); +// wrapper.orderByDesc(SmErpSpuEntity::getCreateTime).orderByDesc(SmErpSpuEntity::getId); + + //重构分页 + Page pageData=baseMapper.selectPageXmlByScope(page,smErpSpuPageDto , DataScope.of()); + +// Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); //计算库存回显 - List records = pageData.getRecords(); - if (CollectionUtils.isNotEmpty(records)) { - Set erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet()); - - // 批量查询库存信息 - List stocks = smErpStockMapper.selectList( - new LambdaQueryWrapper() - .in(SmErpStockEntity::getErpSpuId, erpSpuIds)); - - // 建立SPU ID与库存的映射关系 - Map stockMap = stocks.stream() - .collect(Collectors.toMap(SmErpStockEntity::getErpSpuId, smErpStockEntity -> smErpStockEntity)); - - records.forEach(spu -> - { - SmErpStockEntity smErpStockEntity = stockMap.get(spu.getId()); - spu.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0); - }); - } +// List records = pageData.getRecords(); +// if (CollectionUtils.isNotEmpty(records)) { +// Set erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet()); +// +// // 批量查询库存信息 +// List stocks = smErpStockMapper.selectList( +// new LambdaQueryWrapper() +// .in(SmErpStockEntity::getErpSpuId, erpSpuIds)); +// +// // 建立SPU ID与库存的映射关系 +// Map stockMap = stocks.stream() +// .collect(Collectors.toMap(SmErpStockEntity::getErpSpuId, smErpStockEntity -> smErpStockEntity)); +// +// records.forEach(spu -> +// { +// SmErpStockEntity smErpStockEntity = stockMap.get(spu.getId()); +// spu.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0); +// }); +// } return pageData; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml index affbe3f7d..452956474 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml @@ -3,54 +3,27 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + \ No newline at end of file