From 1945d3f90629dd04107c2897dc003018c5248529 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 12 Oct 2024 15:11:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=85=B1=E4=BA=AB=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cons/rest/TbProskuConController.java | 26 +- .../service/impl/TbProskuConServiceImpl.java | 115 ++----- .../ysk/cashier/dto/product/TbProductDto.java | 2 - .../ysk/cashier/pojo/product/TbProduct.java | 3 - .../cashier/pojo/product/TbProductAndSku.java | 314 ------------------ .../productimpl/TbProductServiceImpl.java | 32 +- .../TbProductStockOperateServiceImpl.java | 58 +--- .../TbProductStocktakinServiceImpl.java | 60 +--- .../impl/shopimpl/TbShopTableServiceImpl.java | 29 +- .../java/cn/ysk/cashier/vo/TbProductVo.java | 3 - 10 files changed, 94 insertions(+), 548 deletions(-) delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductAndSku.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java index 965a5ba6..00282338 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java @@ -44,19 +44,19 @@ public class TbProskuConController { return new ResponseEntity<>(tbProskuConService.queryAll(criteria,pageable),HttpStatus.OK); } - @PostMapping - @Log("新增商品规格耗材信息") - @ApiOperation("新增商品规格耗材信息") - public ResponseEntity createTbProskuCon(@Validated @RequestBody List resources) throws Exception { - try { - return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED); - } catch (BadRequestException be) { - throw new Exception(be.getMessage()); - }catch (Exception e){ - e.printStackTrace(); - throw new Exception("相同商品耗材信息不允许添加"); - } - } +// @PostMapping +// @Log("新增商品规格耗材信息") +// @ApiOperation("新增商品规格耗材信息") +// public ResponseEntity createTbProskuCon(@Validated @RequestBody List resources) throws Exception { +// try { +// return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED); +// } catch (BadRequestException be) { +// throw new Exception(be.getMessage()); +// }catch (Exception e){ +// e.printStackTrace(); +// throw new Exception("相同商品耗材信息不允许添加"); +// } +// } @PostMapping("V2") @Log("新增商品耗材绑定关系") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java index 990be5e4..4fa9316c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java @@ -78,11 +78,10 @@ public class TbProskuConServiceImpl implements TbProskuConService { throw new BadRequestException("对应的商品信息不存在"); } List list=new ArrayList<>(); - if(product.getIsDistribute().intValue()==1){ +// if(product.getIsDistribute().intValue()==1){ TbConsInfo tbConsInfo= tbConsInfoRepository.findById(resource.getConsInfoId()).orElseGet(TbConsInfo::new); - log.info("product.getIsDistribute().intValue():{}", JSONUtil.toJSONString(tbConsInfo)); if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){ throw new BadRequestException("对应的耗材信息不存在"); } @@ -109,41 +108,41 @@ public class TbProskuConServiceImpl implements TbProskuConService { } } - }else { - for (ProskuInfo.SkuInfo skuInfo : resource.getSkuInfos()) { - - - TbConsInfo tbConsInfo= tbConsInfoRepository.findById(skuInfo.getConInfoId()).orElseGet(TbConsInfo::new); - - log.info("skuInfo:{}", JSONUtil.toJSONString(tbConsInfo)); - - if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){ - throw new BadRequestException("对应的耗材信息不存在"); - } - - TbProductSku tbProductSku= tbProductSkuRepository.findById(skuInfo.getSkuId()).orElseGet(TbProductSku::new); - if(ObjectUtil.isNull(tbProductSku)||ObjectUtil.isNull(tbProductSku.getId())){ - throw new BadRequestException("规格信息不存在"); - } - - int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resource.getProductId()); - if(count<=0){ - TbProskuCon tbProskuCon=new TbProskuCon(); - tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId())); - tbProskuCon.setConInfoId(tbConsInfo.getId()); - tbProskuCon.setProductId(resource.getProductId()); - tbProskuCon.setProductSkuId(skuInfo.getSkuId()); - tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); - tbProskuCon.setStatus("1"); - tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); - list.add(tbProskuCon); - }else { - TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId()); - throw new BadRequestException(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在")); - } - } - - } +// }else { +// for (ProskuInfo.SkuInfo skuInfo : resource.getSkuInfos()) { +// +// +// TbConsInfo tbConsInfo= tbConsInfoRepository.findById(skuInfo.getConInfoId()).orElseGet(TbConsInfo::new); +// +// log.info("skuInfo:{}", JSONUtil.toJSONString(tbConsInfo)); +// +// if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){ +// throw new BadRequestException("对应的耗材信息不存在"); +// } +// +// TbProductSku tbProductSku= tbProductSkuRepository.findById(skuInfo.getSkuId()).orElseGet(TbProductSku::new); +// if(ObjectUtil.isNull(tbProductSku)||ObjectUtil.isNull(tbProductSku.getId())){ +// throw new BadRequestException("规格信息不存在"); +// } +// +// int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resource.getProductId()); +// if(count<=0){ +// TbProskuCon tbProskuCon=new TbProskuCon(); +// tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId())); +// tbProskuCon.setConInfoId(tbConsInfo.getId()); +// tbProskuCon.setProductId(resource.getProductId()); +// tbProskuCon.setProductSkuId(skuInfo.getSkuId()); +// tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); +// tbProskuCon.setStatus("1"); +// tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); +// list.add(tbProskuCon); +// }else { +// TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId()); +// throw new BadRequestException(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在")); +// } +// } +// +// } if(Objects.nonNull(list)&&list.size()>0){ tbProskuConRepository.saveAll(list); } @@ -243,48 +242,6 @@ public class TbProskuConServiceImpl implements TbProskuConService { ValidationUtil.isNull( tbProskuCon.getId(),"TbProskuCon","id",resources.getId()); tbProskuCon.copy(resources); tbProskuConRepository.save(tbProskuCon); - - -// TbProduct product= tbProductRepository.getById(resources.getProductId()); -// if(Objects.isNull(product)){ -// throw new Exception("对应的商品信息不存在"); -// } -// -// TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId()); -// if(Objects.isNull(tbConsInfo)){ -// throw new Exception("对应的耗材信息不存在"); -// } -// -// List list=new ArrayList<>(); -// if("1".equals(product.getIsDistribute().toString())){ -// //查询商品对应的所有规格 -// List skuList= tbProductSkuRepository.searchSku(product.getId().toString()); -// if(Objects.nonNull(skuList)&&skuList.size()>0){ -// for (TbProductSku tbProductSku : skuList) { -// TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); -// if(Objects.nonNull(tbProskuCon)){ -// tbProskuCon.setSurplusStock(resources.getSurplusStock()); -// tbProskuCon.setStatus(resources.getStatus()); -// tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); -// list.add(tbProskuCon); -// } -// } -// } -// -// }else { -// -// for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) { -// TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId()); -// if(Objects.nonNull(tbProskuCon)){ -// tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); -// tbProskuCon.setStatus(skuInfo.getStatus()); -// tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); -// list.add(tbProskuCon); -// } -// } -// -// } -// tbProskuConRepository.saveAll(list); } @Override diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductDto.java index cc358958..34b1ffcb 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductDto.java @@ -121,8 +121,6 @@ public class TbProductDto implements Serializable { /** 商品规格:0-单规格 1多规格 */ private String typeEnum; - /** 是否独立分销 */ - private Integer isDistribute; /** 是否回收站 0-否,1回收站 */ private Integer isDel; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProduct.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProduct.java index 2ad7c706..391b1c5e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProduct.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProduct.java @@ -169,9 +169,6 @@ public class TbProduct implements Serializable { @ApiModelProperty(value = "商品规格:0-单规格 1多规格") private String typeEnum; - @Column(name = "`is_distribute`") - @ApiModelProperty(value = "是否共享库存") - private Integer isDistribute = 0; @Column(name = "`is_del`",nullable = false) @NotNull diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductAndSku.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductAndSku.java deleted file mode 100644 index b0321cd4..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductAndSku.java +++ /dev/null @@ -1,314 +0,0 @@ - -package cn.ysk.cashier.pojo.product; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import cn.hutool.core.bean.BeanUtil; -import io.swagger.annotations.ApiModelProperty; -import cn.hutool.core.bean.copier.CopyOptions; -import lombok.EqualsAndHashCode; - -import javax.persistence.*; -import javax.validation.constraints.*; -import java.math.BigDecimal; -import java.io.Serializable; - -/** - * @website https://eladmin.vip - * @description / - * @author lyf - * @date 2023-12-11 - **/ -@Entity -@Data -@Table(name="tb_product") -@TableName("tb_product") -public class TbProductAndSku implements Serializable { - - @Id - @Column(name = "`id`") - @GeneratedValue(strategy = GenerationType.IDENTITY) - @ApiModelProperty(value = "id") - @TableId(type = IdType.AUTO) - private Integer id; - - @Column(name = "`source_path`") - @ApiModelProperty(value = "商品来源 NORMAL普通商品 --,SCORE积分商品") - private String sourcePath="NORMAL"; - - @Column(name = "`merchant_id`") - @ApiModelProperty(value = "商户Id") - private String merchantId = "PLANT_ID"; - - @Column(name = "`shop_id`") - @ApiModelProperty(value = "店铺id") - private String shopId; - - @Column(name = "`name`") - @ApiModelProperty(value = "商品名称") - private String name; - - @Column(name = "`type`") - @ApiModelProperty(value = "商品类型(属性):REAL- 实物商品 VIR---虚拟商品") - private String type = "REAL"; - - @Column(name = "`pack_fee`") - @ApiModelProperty(value = "包装费") - private BigDecimal packFee; - - @Column(name = "`low_price`",nullable = false) - @NotNull - @ApiModelProperty(value = "商品最低价") - private BigDecimal lowPrice; - - @Column(name = "`unit_id`") - @ApiModelProperty(value = "单位Id") - private Integer unitId; - - @Column(name = "`cover_img`") - @ApiModelProperty(value = "商品封面图") - private String coverImg; - - @Column(name = "`category_id`") - @ApiModelProperty(value = "categoryId") - private String categoryId; - - @Column(name = "`spec_id`") - @ApiModelProperty(value = "商品规格") - private Integer specId; - - @Column(name = "`brand_id`") - @ApiModelProperty(value = "品牌Id") - private Integer brandId; - - @Column(name = "`short_title`") - @ApiModelProperty(value = "短标题--促销语") - private String shortTitle; - - @Column(name = "`low_member_price`") - @ApiModelProperty(value = "lowMemberPrice") - private BigDecimal lowMemberPrice; - - @Column(name = "`unit_snap`") - @ApiModelProperty(value = "单位镜像") - private String unitSnap; - - @Column(name = "`share_img`") - @ApiModelProperty(value = "商品分享图") - private String shareImg; - - @Column(name = "`images`") - @ApiModelProperty(value = "商品图片(第一张为缩略图,其他为详情)") - private String images; - - @Column(name = "`video`") - @ApiModelProperty(value = "商品视频URL地址") - private String video; - - @Column(name = "`video_cover_img`") - @ApiModelProperty(value = "视频封面图") - private String videoCoverImg; - - @Column(name = "`sort`") - @ApiModelProperty(value = "排序") - private Integer sort = 0; - - @Column(name = "`limit_number`") - @ApiModelProperty(value = "0-不限购") - private Integer limitNumber = 0; - - @Column(name = "`product_score`") - @ApiModelProperty(value = "商品赚送积分") - private Integer productScore; - - @Column(name = "`status`",nullable = false) - @NotNull - @ApiModelProperty(value = "0--待审核 1审核通过 -1审核失败 -2违规下架") - private Integer status = 0; - - @Column(name = "`fail_msg`") - @ApiModelProperty(value = "审核失败原因") - private String failMsg; - - @Column(name = "`is_recommend`") - @ApiModelProperty(value = "是否推荐,店铺推荐展示") - private Integer isRecommend = 0; - - @Column(name = "`is_hot`") - @ApiModelProperty(value = "是否热销") - private Integer isHot = 0; - - @Column(name = "`is_new`") - @ApiModelProperty(value = "是否新品") - private Integer isNew; - - @Column(name = "`is_on_sale`") - @ApiModelProperty(value = "是否促销1-是0-否") - private Integer isOnSale = 0; - - @Column(name = "`is_show`") - @ApiModelProperty(value = "是否展示0-下架 1上架---废弃") - private Integer isShow = 0; - - @Column(name = "`type_enum`") - @ApiModelProperty(value = "商品规格:0-单规格 1多规格") - private String typeEnum; - - @Column(name = "`is_distribute`") - @ApiModelProperty(value = "是否共享库存") - private Integer isDistribute = 0; - - @Column(name = "`is_del`",nullable = false) - @NotNull - @ApiModelProperty(value = "是否回收站 0-否,1回收站") - private Integer isDel = 0; - - @Column(name = "`is_stock`") - @ApiModelProperty(value = "是否开启库存") - private Integer isStock = 1; - - @Column(name = "`is_pause_sale`") - @ApiModelProperty(value = "是否暂停销售") - private Integer isPauseSale = 0; - - @Column(name = "`is_free_freight`",nullable = false) - @NotNull - @ApiModelProperty(value = "是否免邮1-是 0-否") - private Integer isFreeFreight=1; - - @Column(name = "`freight_id`") - @ApiModelProperty(value = "邮费模版") - private Long freightId; - - @Column(name = "`strategy_type`") - @ApiModelProperty(value = "商品当前生效策略") - private String strategyType; - - @Column(name = "`strategy_id`") - @ApiModelProperty(value = "策略Id") - private Integer strategyId = 1; - - @Column(name = "`is_vip`") - @ApiModelProperty(value = "vip专属") - private Integer isVip = 0; - - @Column(name = "`is_delete`",nullable = false) - @NotNull - @ApiModelProperty(value = "是否删除") - private Integer isDelete = 0; - - @Column(name = "`notice`") - @ApiModelProperty(value = "购买须知") - private String notice; - - @Column(name = "`created_at`") - @ApiModelProperty(value = "createdAt") - private Long createdAt; - - @Column(name = "`updated_at`") - @ApiModelProperty(value = "updatedAt") - private Long updatedAt; - - @Column(name = "`base_sales_number`") - @ApiModelProperty(value = "基础出售数量") - private Double baseSalesNumber =0.00; - - @Column(name = "`real_sales_number`") - @ApiModelProperty(value = "实际销量") - private Double realSalesNumber = (double) 0; - - @Column(name = "`sales_number`") - @ApiModelProperty(value = "合计销量") - private Integer salesNumber = 0; - - @Column(name = "`thumb_count`") - @ApiModelProperty(value = "点赞次数") - private Integer thumbCount = 0; - - @Column(name = "`store_count`") - @ApiModelProperty(value = "收藏次数") - private Integer storeCount = 0; - - @Column(name = "`furnish_meal`") - @ApiModelProperty(value = "支持堂食") - private Integer furnishMeal = 0; - - @Column(name = "`furnish_express`") - @ApiModelProperty(value = "支持配送") - private Integer furnishExpress = 0; - - @Column(name = "`furnish_draw`") - @ApiModelProperty(value = "支持自提") - private Integer furnishDraw = 0; - - @Column(name = "`furnish_vir`") - @ApiModelProperty(value = "支持虚拟") - private Integer furnishVir = 0; - - @Column(name = "`is_combo`") - @ApiModelProperty(value = "是否套餐") - private Integer isCombo =0; - - @Column(name = "`group_snap`") - @ApiModelProperty(value = "套餐内容") - private String groupSnap; - - @Column(name = "`is_show_cash`") - @ApiModelProperty(value = "isShowCash") - private Integer isShowCash =0; - - @Column(name = "`is_show_mall`") - @ApiModelProperty(value = "isShowMall") - private Integer isShowMall = 0; - - @Column(name = "`is_need_examine`") - @ApiModelProperty(value = "是否需要审核") - private Integer isNeedExamine = 0; - - @Column(name = "`show_on_mall_status`") - @ApiModelProperty(value = "线上商城展示状态0待审核 -1 异常 1正常") - private Integer showOnMallStatus = 1; - - @Column(name = "`show_on_mall_time`") - @ApiModelProperty(value = "提交审核时间") - private Long showOnMallTime; - - @Column(name = "`show_on_mall_error_msg`") - @ApiModelProperty(value = "线上商城展示失败原因") - private String showOnMallErrorMsg; - - @Column(name = "`enable_label`") - @ApiModelProperty(value = "使用标签打印 选择 是 并在 前台>本机设置 勾选打印标签后,收银完成后会自动打印对应数量的标签数") - private Integer enableLabel = 0; - - @Column(name = "`tax_config_id`") - @ApiModelProperty(value = "税率") - private String taxConfigId; - - @Column(name = "spec_info") - @ApiModelProperty(value = "specInfo") - private String specInfo; - - @Column(name = "select_spec") - @ApiModelProperty(value = "selectSpec") - private String selectSpec; - - @Column(name = "spec_table_headers") - @ApiModelProperty(value = "specTableHeaders") - private String specTableHeaders; - - @Column(name = "group_category_id") - @ApiModelProperty(value = "团购卷分类Id") - private String groupCategoryId; - - @Column(name = "stock_number") - @ApiModelProperty("库存数量") - private Double stockNumber = (double) 0; - - - public void copy(TbProduct source){ - BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); - } -} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java index fe48bb66..864f945c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java @@ -169,24 +169,14 @@ public class TbProductServiceImpl implements TbProductService { tbProductVo.setMaxPrice(maxPrice); - if (product.getIsDistribute() == 1) { - stockNumber = product.getStockNumber() == null ? 0 : product.getStockNumber(); - TbProductSku tbProductSku = null; - if (isAdmin) { - if (!tbProductSkus.isEmpty()) { - tbProductSku = BeanUtil.copyProperties(tbProductSkus.get(0), TbProductSku.class); - tbProductSku.setStockNumber(stockNumber); - } - skuList.add(tbProductSku); - } - } else { - for (TbProductSku sku : tbProductSkus) { - //sku - if (sku.getProductId().equals(product.getId().toString())) { - skuList.add(sku); - stockNumber = isAdmin ? sku.getStockNumber() : stockNumber + sku.getStockNumber(); - } + stockNumber = product.getStockNumber() == null ? 0 : product.getStockNumber(); + TbProductSku tbProductSku = null; + if (isAdmin) { + if (!tbProductSkus.isEmpty()) { + tbProductSku = BeanUtil.copyProperties(tbProductSkus.get(0), TbProductSku.class); + tbProductSku.setStockNumber(stockNumber); } + skuList.add(tbProductSku); } tbProductVo.setStockNumber(stockNumber); tbProductVo.setSkuList(skuList); @@ -716,7 +706,6 @@ public class TbProductServiceImpl implements TbProductService { map.put("是否促销1-是0-否", tbProduct.getIsOnSale()); map.put("是否展示0-下架 1上架---废弃", tbProduct.getIsShow()); map.put("商品规格:0-单规格 1多规格", tbProduct.getTypeEnum()); - map.put("是否独立分销", tbProduct.getIsDistribute()); map.put("是否回收站 0-否,1回收站", tbProduct.getIsDel()); map.put("是否开启库存", tbProduct.getIsStock()); map.put("是否暂停销售", tbProduct.getIsPauseSale()); @@ -826,11 +815,8 @@ public class TbProductServiceImpl implements TbProductService { tbProductSkus.forEach(item2 -> { Map itemMap = BeanUtil.beanToMap(item2, false, true); - if (item.getIsDistribute().equals(1)) { - itemMap.put("stockNumber", item.getStockNumber()); - } else { - itemMap.put("stockNumber", item2.getStockNumber()); - } + itemMap.put("stockNumber", item.getStockNumber()); + specList.add(itemMap); }); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java index 1bda9746..c856e48b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java @@ -236,7 +236,6 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe throw new BadRequestException("商品有误"); } - boolean isDistribute = product.getIsDistribute() == 1; // 保存库存详情 TbProductStockDetail productStockDetail = new TbProductStockDetail(); @@ -244,7 +243,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setCreatedAt(times); productStockDetail.setUpdatedAt(times); productStockDetail.setIsStock(1); - Integer round = (int) Math.floor(isDistribute ? product.getStockNumber() : tbProductSku.getStockNumber()); + Integer round = (int) Math.floor(product.getStockNumber()); productStockDetail.setLeftNumber(round); productStockDetail.setProductId(tbProductSku.getProductId()); productStockDetail.setProductName(product.getName()); @@ -268,7 +267,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), false), - productListDto.getCostPrice(), isDistribute); + productListDto.getCostPrice()); break; //后台入库 case "purveyor": @@ -281,7 +280,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 double stockNum = getStockNum(product, tbProductSku, productListDto.getNumber(), true); setProSpecInfo(product, tbProductSku, stockNum, - productListDto.getCostPrice(), isDistribute); + productListDto.getCostPrice()); break; case "purchase": @@ -294,7 +293,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), true), - productListDto.getCostPrice(), isDistribute); + productListDto.getCostPrice()); break; case "other-out": productStockDetail.setStockNumber((double) -productListDto.getNumber()); @@ -306,7 +305,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), false), - productListDto.getCostPrice(), isDistribute); + productListDto.getCostPrice()); break; default: break; @@ -314,15 +313,9 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setUnitName(productListDto.getUnitName()); entityManager.persist(productStockDetail); - if (isDistribute) { - //修改成本价 - tbProductSkuRepository.updateCostByProductId(product.getId().toString(), productListDto.getCostPrice()); - tbProductRepository.save(product); - } else { - //sku数量 - tbProductSku.setCostPrice(productListDto.getCostPrice()); - productSkuService.update(tbProductSku); - } + //修改成本价 + tbProductSkuRepository.updateCostByProductId(product.getId().toString(), productListDto.getCostPrice()); + tbProductRepository.save(product); idStockMap.put(productListDto.getId(), productStockDetail.getStockNumber()); } redisUtils.redisUp(2, resources.getShopId(), idStockMap); @@ -333,35 +326,20 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe } private double getStockNum(TbProduct product, TbProductSku productSku, double num, boolean isAdd) { - if (product.getIsDistribute() == 1) { - product.setStockNumber((int) (isAdd ? product.getStockNumber() + num : product.getStockNumber() - num)); - return product.getStockNumber(); - } else { - productSku.setStockNumber(isAdd ? productSku.getStockNumber() + num : productSku.getStockNumber() - num); - return productSku.getStockNumber(); - } + product.setStockNumber((int) (isAdd ? product.getStockNumber() + num : product.getStockNumber() - num)); + return product.getStockNumber(); + } - public static void main(String[] args) { - } - private void setProSpecInfo(TbProduct product, TbProductSku productSku, double num, BigDecimal cost, boolean isShareStock) { + private void setProSpecInfo(TbProduct product, TbProductSku productSku, double num, BigDecimal cost) { if (product.getSpecInfo() != null) { JSONArray specInfoArr = JSON.parseArray(product.getSpecInfo()); for (Object item : specInfoArr) { JSONObject jsonObject = (JSONObject) item; - if (isShareStock) { - jsonObject.put("stockNumber", num); - jsonObject.put("costPrice", cost); - } else if (productSku != null && - ( - productSku.getId().equals(jsonObject.getInteger("id")) || - (productSku.getSpecSnap() != null && productSku.getSpecSnap().equals(jsonObject.getString("specSnap"))) - )) { - jsonObject.put("stockNumber", num); - jsonObject.put("costPrice", cost); - break; - } + jsonObject.put("stockNumber", num); + jsonObject.put("costPrice", cost); + } product.setSpecInfo(specInfoArr.toJSONString()); } @@ -453,8 +431,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe //增加操作日志 long times = Instant.now().toEpochMilli(); HashMap snapItem = new HashMap<>(); - snapItem.put("stockNumber", product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber() : - productSku.getStockNumber() - stockRecordMsg.getNumber()); + snapItem.put("stockNumber", product.getStockNumber() - stockRecordMsg.getNumber()); snapItem.put("number", stockRecordMsg.getSubType() == -1 ? -stockRecordMsg.getNumber() : stockRecordMsg.getNumber()); snapItem.put("coverImg", product.getCoverImg()); snapItem.put("productId", product.getId()); @@ -495,8 +472,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setSpecSnap(productSku.getSpecSnap()); productStockDetail.setStockNumber(Double.valueOf(stockRecordMsg.getNumber())); productStockDetail.setCostAmount(productSku.getSalePrice().multiply(BigDecimal.valueOf(Math.abs(stockRecordMsg.getNumber())))); - productStockDetail.setLeftNumber(product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber() - : productSku.getStockNumber().intValue() - stockRecordMsg.getNumber()); + productStockDetail.setLeftNumber(product.getStockNumber() - stockRecordMsg.getNumber()); productStockDetail.setRecordId(stockOperate.getId().toString()); productStockDetail.setStockSnap(JSONObject.toJSONString(snapItem)); productStockDetail.setSourcePath("CASHIER"); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStocktakinServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStocktakinServiceImpl.java index ed5c51ce..f43e8262 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStocktakinServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStocktakinServiceImpl.java @@ -128,56 +128,22 @@ public class TbProductStocktakinServiceImpl implements TbProductStocktakinServic snap.put("unitName", tbShopUnit == null ? null : tbShopUnit.getName()); // snap.put("specSnap", tbShopUnit == null ? null : tbShopUnit.getName()); - // 共享库存 - if (product.getIsDistribute() == 1) { - phaseNum = productStocktakinDTO.getStocktakinNum() - product.getStockNumber(); - round = (int) Math.floor( product.getStockNumber()); - productStocktakin.setPhasePrice( - productStocktakinDTO.getPrice().multiply(BigDecimal.valueOf(phaseNum)) - ); + phaseNum = productStocktakinDTO.getStocktakinNum() - product.getStockNumber(); + round = (int) Math.floor(product.getStockNumber()); + productStocktakin.setPhasePrice( + productStocktakinDTO.getPrice().multiply(BigDecimal.valueOf(phaseNum)) + ); - productStockDetail.setSubType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? 1 : -1); - stockOperate.setType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? "盘点入库" : "盘点出库"); - productStockDetail.setType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? "盘点入库" : "盘点出库"); - - productStocktakin.setPhaseNum(productStocktakinDTO.getStocktakinNum() - product.getStockNumber()); - productStocktakin.setStock(product.getStockNumber()); - if (tbProductRepository.updateStock(product.getId(), product.getStockNumber(), productStocktakinDTO.getStocktakinNum()) < 1) { - throw new BadRequestException("修改库存失败,稍后再试"); - } - snap.put("stockNumber", product.getStockNumber()); - - }else { - if (productStocktakinDTO.getSkuId() == null) { - throw new BadRequestException("非共享库存必须传入skuId"); - } - - TbProductSku productSku = producSkutMapper.selectByProIdAndId(productStocktakinDTO.getSkuId(), - productStocktakinDTO.getProductId()); - phaseNum = (int) (productStocktakinDTO.getStocktakinNum() - productSku.getStockNumber()); - - productStocktakinDTO.setPrice(productSku.getSalePrice()); - - - round = (int) Math.floor( productSku.getStockNumber()); - productStockDetail.setSpecSnap(productSku.getSpecSnap()); - - productStockDetail.setSubType(productStocktakinDTO.getStocktakinNum() > productSku.getStockNumber() ? 1 : -1); - stockOperate.setType(productStocktakinDTO.getStocktakinNum() > productSku.getStockNumber() ? "盘点入库" : "盘点出库"); - productStockDetail.setType(productStocktakinDTO.getStocktakinNum() > productSku.getStockNumber() ? "盘点入库" : "盘点出库"); - productStocktakin.setSkuId(productSku.getId()); - productStocktakin.setPhasePrice( - productStocktakinDTO.getPrice().multiply(BigDecimal.valueOf(phaseNum)) - ); - productStocktakin.setStock(productSku.getStockNumber().intValue()); - - productStocktakin.setPhaseNum((int) (productStocktakinDTO.getStocktakinNum() - productSku.getStockNumber())); - if (producSkutMapper.updateStock(productSku.getId(), productSku.getStockNumber(), productStocktakinDTO.getStocktakinNum()) < 1) { - throw new BadRequestException("修改库存失败,稍后再试"); - } - snap.put("stockNumber", productSku.getStockNumber()); + productStockDetail.setSubType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? 1 : -1); + stockOperate.setType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? "盘点入库" : "盘点出库"); + productStockDetail.setType(productStocktakinDTO.getStocktakinNum() > product.getStockNumber() ? "盘点入库" : "盘点出库"); + productStocktakin.setPhaseNum(productStocktakinDTO.getStocktakinNum() - product.getStockNumber()); + productStocktakin.setStock(product.getStockNumber()); + if (tbProductRepository.updateStock(product.getId(), product.getStockNumber(), productStocktakinDTO.getStocktakinNum()) < 1) { + throw new BadRequestException("修改库存失败,稍后再试"); } + snap.put("stockNumber", product.getStockNumber()); snap.put("number", phaseNum); productStocktakin.setPrice(productStocktakinDTO.getPrice()); productStockDetail.setStockNumber((double) phaseNum); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 01b97929..d074ede4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -319,9 +319,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("商品不存在或已下架, id: " + addCartDTO.getSkuId()); } - if ((product.getIsDistribute().equals(1) && product.getStockNumber() < 1) - || (!product.getIsDistribute().equals(1) && productSku.getStockNumber() < 1) - ) { + if (product.getStockNumber() < 1) { throw new BadRequestException(product.getName() + "商品库存不足"); } @@ -622,12 +620,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { * @param addNum 增加的库存数量 */ public void incrStock(Integer productId, Integer skuId, Integer addNum) { - TbProduct product = productMapper.selectById(productId); - if (product.getIsDistribute() == 1) { - productMapper.incrStock(product.getId(), addNum); - } else { - producSkutMapper.incrStock(skuId, addNum); - } + productMapper.incrStock(productId, addNum); } /** @@ -639,22 +632,12 @@ public class TbShopTableServiceImpl implements TbShopTableService { */ public void decrStock(Integer productId, String skuId, int decrNum) { TbProduct product = productMapper.selectById(productId); - if (product.getIsDistribute() == 1) { - if (product.getIsStock() == 1) { - if (productMapper.decrStock(productId, decrNum) < 1) { - throw new BadRequestException(product.getName() + "库存不足,下单失败"); - } - } else { - productMapper.decrStockUnCheck(productId, decrNum); + if (product.getIsStock() == 1) { + if (productMapper.decrStock(productId, decrNum) < 1) { + throw new BadRequestException(product.getName() + "库存不足,下单失败"); } } else { - if (product.getIsStock() == 1) { - if (producSkutMapper.decrStock(String.valueOf(skuId), decrNum) < 1) { - throw new BadRequestException(product.getName() + "库存不足,下单失败"); - } - } else { - producSkutMapper.decrStockUnCheck(String.valueOf(skuId), decrNum); - } + productMapper.decrStockUnCheck(productId, decrNum); } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbProductVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbProductVo.java index 70d11cea..d2ca7771 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbProductVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbProductVo.java @@ -114,9 +114,6 @@ public class TbProductVo { private String typeEnum; - private Integer isDistribute; - - private Integer isDel;