From 3431cfa75e3e0cd3f8569e9c8b487c89b3ab92d5 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 23 Jun 2025 19:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E5=95=86=E5=9F=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/RemoteSupermarketSpuService.java | 7 ++ ...SupermarketSpuUpdateStockByCodeReqDTO.java | 60 ++++++++++++++ .../dto/SupermarketSpuUpdateStockReqDTO.java | 3 - .../supermarket/entity/ShopSkuEntity.java | 3 + .../controller/AppShopSpuController.java | 7 ++ .../controller/SmErpSpuController.java | 15 ++++ .../supermarket/mapper/ShopSkuMapper.java | 10 +++ .../supermarket/mapper/SmErpUnitMapper.java | 9 ++- .../supermarket/service/ShopSkuService.java | 8 ++ .../supermarket/service/SmErpSpuService.java | 8 ++ .../supermarket/service/SmErpUnitService.java | 9 +++ .../service/impl/ShopSkuServiceImpl.java | 16 ++++ .../service/impl/SmErpSpuServiceImpl.java | 78 ++++++++++++++++++- .../service/impl/SmErpUnitServiceImpl.java | 5 ++ .../main/resources/mapper/ShopSkuMapper.xml | 7 ++ .../main/resources/mapper/SmErpUnitMapper.xml | 24 +++++- 16 files changed, 263 insertions(+), 6 deletions(-) create mode 100644 pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockByCodeReqDTO.java diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java index 70eb729ed..0b9ceb852 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java @@ -70,6 +70,13 @@ public interface RemoteSupermarketSpuService { + /** + * 更新库存根据货号和条码 + * @param updateStockReqDTO + * @return + */ + @PostMapping("/supermarketSpu/ad/updateSpuStockByCode") + R updateSpuStockByCode(@RequestBody SupermarketSpuUpdateStockReqDTO updateStockReqDTO); /** diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockByCodeReqDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockByCodeReqDTO.java new file mode 100644 index 000000000..02e480659 --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockByCodeReqDTO.java @@ -0,0 +1,60 @@ +package com.bsd.pjcloud.supermarket.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 商品 SKU 更新库存 Request DTO + * + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SupermarketSpuUpdateStockByCodeReqDTO { + + /** + * 商品 SKU + */ + @NotNull(message = "商品 SPU 不能为空") + private List items; + + + @Schema(description = "下单设备类型,0默认安卓机,1移动端") + private int deviceType; + + @Data + public static class Item { + +// /** +// * 商品 SKU 编号 +// */ + @NotNull(message = "商品货号") + private String productCode ; + + + @NotNull(message = "商品条码") + private String barCode; + /** + * 库存变化数量 + * + * 正数:增加库存 + * 负数:扣减库存 + */ + @NotNull(message = "库存变化数量不能为空") + private Double incrCount; + + + /** + * 需要扣减库存商品所属的商户部门id + */ + @NotNull(message = "部门不能为空") + private Long deptId; + + } + +} diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java index 17b864c1d..59ebda356 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java @@ -10,9 +10,6 @@ import java.util.List; /** * 商品 SKU 更新库存 Request DTO - * - * @author LeeYan9 - * @since 2022-08-26 */ @Data @NoArgsConstructor diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java index c73fd9de5..11407bd29 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java @@ -113,4 +113,7 @@ public class ShopSkuEntity extends Model { */ @Schema(description="sku属性") private String attribute; + + @Schema(description="版本号") + private Integer version; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java index c9efd012a..7af325a39 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java @@ -57,4 +57,11 @@ public class AppShopSpuController { vo.setSkuList(skuList.stream().map(sku -> BeanUtils.toBean(sku, ShopSkuAppVo.class)).collect(Collectors.toList())); return R.ok(vo); } + + @PostMapping("/deductStock") + @Operation(summary = "扣减库存", description = "根据skuId和数量扣减库存") + public R deductStock(@RequestParam Long skuId, @RequestParam Integer num) { + boolean result = shopSkuService.deductStock(skuId, num); + return result ? R.ok(true) : R.failed("库存不足或扣减失败"); + } } \ 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 208d8e671..a696b78e9 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 @@ -14,6 +14,7 @@ import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuAppQueryDTO; 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.entity.SmErpAuxiliaryCodeEntity; @@ -38,6 +39,7 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -271,6 +273,19 @@ public class SmErpSpuController { } + /** + * 在线商城核销扣减实际商品库存,根据货号/条码 + * @param updateStockReqDTO + * @return + */ + @PostMapping("/ad/updateSpuStockByCode") + @Operation(summary = "更新库存" , description = "app和安卓公用" ) + @SysLog("更新商品库存根据在线商城的编码") + public R updateSpuStockByCode(@RequestBody SupermarketSpuUpdateStockByCodeReqDTO updateStockReqDTO){ + return smErpSpuService.updateSpuStockByCode(updateStockReqDTO); + } + + //-------------------APP----------------- diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSkuMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSkuMapper.java index 9922b4636..a746ed325 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSkuMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSkuMapper.java @@ -7,4 +7,14 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ShopSkuMapper extends PjcloudBaseMapper { + /** + * 修改库存(乐观锁) + * 正数:增加库存,负数:扣减库存 + * @param skuId sku主键 + * @param num 增减数量(正数加,负数减) + * @param version 当前版本号 + * @return 影响行数 + */ + int deductStock(Long skuId, Integer num, Integer version); + } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpUnitMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpUnitMapper.java index fa59215a2..4a6605dbc 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpUnitMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpUnitMapper.java @@ -23,5 +23,12 @@ public interface SmErpUnitMapper extends PjcloudBaseMapper { List getSupermarketUnitsWithSpu(List ids); - + /** + * 根据商品编码和条码获取超市包装单位信息 + * @param productCode + * @param barCode + * @param deptId + * @return + */ + SmErpUnitEntity getOneByProductCodeAndBarCode(String productCode, String barCode, Long deptId); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/ShopSkuService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/ShopSkuService.java index 4962b9f62..4510992fd 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/ShopSkuService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/ShopSkuService.java @@ -5,4 +5,12 @@ import com.bsd.pjcloud.supermarket.entity.ShopSkuEntity; public interface ShopSkuService extends IService { + /** + * 修改库存(乐观锁) + * 正数:增加库存,负数:扣减库存 + * @param skuId sku主键 + * @param num 增减数量(正数加,负数减) + * @return 是否成功 + */ + boolean deductStock(Long skuId, Integer num); } \ 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 daf81367c..2e21954d7 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.common.core.util.R; 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.cgplan.ErpCgPlanDTO; import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; @@ -41,6 +42,13 @@ public interface SmErpSpuService extends IService { R updateSpuStock(SupermarketSpuUpdateStockReqDTO updateStockReqDTO); + /** + * 根据商品编码更新库存 + * @param updateStockReqDTO + * @return + */ + R updateSpuStockByCode(SupermarketSpuUpdateStockByCodeReqDTO updateStockReqDTO); + /** * 分页查询 * @param page diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpUnitService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpUnitService.java index 990f0cce6..f2ca8832c 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpUnitService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpUnitService.java @@ -25,4 +25,13 @@ public interface SmErpUnitService extends IService { * @return */ List listScope(String barCode); + + + /** + * 根据商品编码和条形码获取商品包装单位信息 + * @param productCode + * @param barCode + * @return + */ + SmErpUnitEntity getOneByProductCodeAndBarCode(String productCode, String barCode, Long deptId); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java index ba6d95e86..8c799075c 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java @@ -13,4 +13,20 @@ import org.springframework.stereotype.Service; */ @Service public class ShopSkuServiceImpl extends ServiceImpl implements ShopSkuService { + /** + * 修改库存(乐观锁) + * 正数:增加库存,负数:扣减库存 + */ + @Override + public boolean deductStock(Long skuId, Integer num) { + for (int i = 0; i < 3; i++) { // 最多重试3次 + ShopSkuEntity sku = this.getById(skuId); + if (sku == null) return false; + // 扣减时判断库存是否足够 + if (num < 0 && sku.getStock() < -num) return false; + int updated = baseMapper.deductStock(skuId, num, sku.getVersion()); + if (updated > 0) return true; + } + return false; + } } \ No newline at end of file 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 0e9ef0d9a..39d39d014 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 @@ -14,6 +14,7 @@ import com.bsd.pjcloud.common.sequence.sequence.Sequence; import com.bsd.pjcloud.supermarket.constant.InventoryTypeEnum; import com.bsd.pjcloud.supermarket.constant.OrderTypeEnum; 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.cgplan.ErpCgPlanDTO; import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; @@ -390,7 +391,6 @@ public class SmErpSpuServiceImpl extends ServiceImpl smErpInventoryRecordsItemEntity.getUnitPrice()).mapToInt(Integer::intValue).sum(); + smErpInventoryRecordsEntity.setTotalAmount(sum); + smErpInventoryRecordsEntity.setReceiveAmount(sum); + //生成出入库记录 + smErpInventoryRecordsMapper.insert(smErpInventoryRecordsEntity); + smErpInventoryRecordsItemEntityList.forEach(smErpInventoryRecordsItemEntity -> { + smErpInventoryRecordsItemEntity.setInventoryId(smErpInventoryRecordsEntity.getId()); + }); + smErpInventoryRecordsItemMapper.insert(smErpInventoryRecordsItemEntityList); + return R.ok(); + } + + @Override + @Transactional + public R updateSpuStockByCode(SupermarketSpuUpdateStockByCodeReqDTO updateStockReqDTO) { + List updateStockDTOS = new ArrayList(); + //出库主表数据 + SmErpInventoryRecordsEntity smErpInventoryRecordsEntity = new SmErpInventoryRecordsEntity(); + String s = sequence.nextNo(); + String result = InventoryTypeEnum.LSCK.getValue() + "-" + s; + smErpInventoryRecordsEntity.setInventoryCode(result); + smErpInventoryRecordsEntity.setInventoryDate(LocalDate.now()); + smErpInventoryRecordsEntity.setInventoryType(InventoryTypeEnum.LSCK.getType()); + smErpInventoryRecordsEntity.setOrderType(OrderTypeEnum.CK.getType()); + smErpInventoryRecordsEntity.setDeviceType(updateStockReqDTO.getDeviceType()); + + List smErpInventoryRecordsItemEntityList = new ArrayList<>(); + + for (SupermarketSpuUpdateStockByCodeReqDTO.Item v : updateStockReqDTO.getItems()) { +// LambdaQueryWrapper smErpUnitEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// smErpUnitEntityLambdaQueryWrapper.eq(SmErpUnitEntity::getBarCode, v.getBarCode()); + SmErpUnitEntity smErpUnitEntity = smErpUnitService.getOneByProductCodeAndBarCode(v.getProductCode(), v.getBarCode(),v.getDeptId()); + + if (null==smErpUnitEntity){ + return R.failed(v.getProductCode() + "商品不存在"); + } + + //计算包装单位实际需要扣减的库存 + Double incrCount = (smErpUnitEntity.getPackageNum()) * v.getIncrCount(); + // 查询当前库存 + Long spuId = smErpUnitEntity.getSpuId(); + SmErpSpuEntity spu = baseMapper.selectById(spuId); + if (null==spu) { + return R.failed(spu.getProductName() + "商品不存在"); + } + if (v.getIncrCount() == 0) { + return R.failed("扣减不能为0"); + } + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(SmErpStockEntity::getErpSpuId, spuId); + SmErpStockEntity smErpStockEntity = smErpStockMapper.selectOne(lambdaUpdateWrapper); + + + // 检查库存是否足够 + if (incrCount < 0 && Math.abs(incrCount) > smErpStockEntity.getCurrentStock()) { + return R.failed(spu.getProductName() + "库存不足,无法完成操作"); + } + + UpdateStockDTO updateStockDTO = new UpdateStockDTO(spuId, incrCount); + updateStockDTOS.add(updateStockDTO); + + //生成出入库记录 + SmErpInventoryRecordsItemEntity smErpInventoryRecordsItemEntity = new SmErpInventoryRecordsItemEntity(); + smErpInventoryRecordsItemEntity.setInventoryId(smErpInventoryRecordsEntity.getId()); + smErpInventoryRecordsItemEntity.setErpSpuId(spuId); + smErpInventoryRecordsItemEntity.setQuantity(incrCount); + smErpInventoryRecordsItemEntity.setUnitId(smErpUnitEntity.getId()); + smErpInventoryRecordsItemEntity.setOrderType(OrderTypeEnum.CK.getType()); + // 添加收款金额字段和会员卡号,用于记录零售业务,后续扩展使用 + smErpInventoryRecordsItemEntity.setUnitPrice + (smErpUnitEntity.getPromotionPrice()==null || smErpUnitEntity.getPromotionPrice()==0 + ?smErpUnitEntity.getRetailPrice():smErpUnitEntity.getPromotionPrice()); + smErpInventoryRecordsItemEntityList.add(smErpInventoryRecordsItemEntity); + } + smErpStockService.updateStock(updateStockDTOS); int sum = smErpInventoryRecordsItemEntityList.stream().map(smErpInventoryRecordsItemEntity -> smErpInventoryRecordsItemEntity.getUnitPrice()).mapToInt(Integer::intValue).sum(); smErpInventoryRecordsEntity.setTotalAmount(sum); smErpInventoryRecordsEntity.setReceiveAmount(sum); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpUnitServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpUnitServiceImpl.java index 3d41a07c8..1d3046d7c 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpUnitServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpUnitServiceImpl.java @@ -35,4 +35,9 @@ public class SmErpUnitServiceImpl extends ServiceImpl bean = BeanUtils.toBean(smErpUnitEntities, UnitPriceInfo.class); return bean; } + + @Override + public SmErpUnitEntity getOneByProductCodeAndBarCode(String productCode, String barCode,Long deptId) { + return baseMapper.getOneByProductCodeAndBarCode(productCode,barCode,deptId); + } } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml index d0350065c..8e2dd37cb 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml @@ -21,5 +21,12 @@ + + + + UPDATE shop_sku + SET stock = stock + #{num}, version = version + 1 + WHERE id = #{skuId} AND stock + #{num} >= 0 AND version = #{version} + \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml index 6bae388f8..a47adbb78 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml @@ -28,7 +28,7 @@ - + @@ -72,4 +72,26 @@ + \ No newline at end of file