From bd0c2b09e9c2fd88bc3675a69bece5ee37091ce1 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Fri, 11 Jul 2025 16:57:43 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=89=93=E5=8D=B0=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/StoreProductColorSizeController.java | 14 +++- .../storeProdColorSize/StorePrintSnResVO.java | 36 ++++++++ .../vo/storeProdColorSize/StorePrintSnVO.java | 60 ++++++++++++++ .../storeProdColorSize/StoreProdSnResVO.java | 44 ---------- .../storeProdColorSize/StoreSaleSnResVO.java | 2 + .../StoreStockTakingSnResVO.java | 2 + .../StoreStorageSnResVO.java | 2 + .../storeProdColorSize/StorePrintSnDTO.java | 49 +++++++++++ .../StorePrintSnResDTO.java | 36 ++++++++ .../IStoreProductColorSizeService.java | 11 +++ .../StoreProductColorSizeServiceImpl.java | 83 +++++++++++++++++++ 11 files changed, 291 insertions(+), 48 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnResVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnVO.java delete mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreProdSnResVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnResDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductColorSizeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductColorSizeController.java index 6cfa7dd00..22767d6c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductColorSizeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductColorSizeController.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.web.controller.xkt.vo.storeProdColorSize.*; +import com.ruoyi.xkt.dto.storeProdColorSize.StorePrintSnDTO; import com.ruoyi.xkt.dto.storeProdColorSize.StoreProdSnDTO; import com.ruoyi.xkt.dto.storeProdColorSize.StoreSaleSnDTO; import com.ruoyi.xkt.dto.storeProdColorSize.StoreStockTakingSnDTO; @@ -20,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 档口商品颜色的尺码Controller * @@ -58,9 +61,12 @@ public class StoreProductColorSizeController extends XktBaseController { return R.ok(BeanUtil.toBean(prodColorSizeService.stockTakingSnList(BeanUtil.toBean(snVO, StoreStockTakingSnDTO.class)), StoreStockTakingSnResVO.class)); } - - // TODO 打印条码 - // TODO 打印条码 - // TODO 打印条码 + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @Log(title = "[打印条码] 获取商品条码", businessType = BusinessType.INSERT) + @ApiOperation(value = "[打印条码] 获取商品条码", httpMethod = "POST", response = R.class) + @PostMapping("/sn/print") + public R> getPrintSnList(@Validated @RequestBody StorePrintSnVO snVO) { + return R.ok(BeanUtil.copyToList(prodColorSizeService.getPrintSnList(BeanUtil.toBean(snVO, StorePrintSnDTO.class)), StorePrintSnResVO.class)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnResVO.java new file mode 100644 index 000000000..26bf3fd07 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnResVO.java @@ -0,0 +1,36 @@ +package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "打印条码返回前端数据model") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StorePrintSnResVO { + + @ApiModelProperty(value = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "打印size条码列表") + private List sizeSnList; + + @Data + @Accessors(chain = true) + public static class SPSizeSnVO { + @ApiModelProperty(value = "尺码") + private Integer size; + @ApiModelProperty(value = "条码列表") + private List snList; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnVO.java new file mode 100644 index 000000000..4756a5e39 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StorePrintSnVO.java @@ -0,0 +1,60 @@ +package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel(value = "打印条码请求入参") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StorePrintSnVO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(value = "档口ID", required = true) + private String storeId; + @Valid + @NotNull(message = "打印颜色尺码列表不能为空!") + @ApiModelProperty(value = "打印颜色尺码列表", required = true) + private List colorSizeList; + + @Data + @Accessors(chain = true) + public static class SPColorSizeVO { + @NotNull(message = "档口商品颜色ID不能为空!") + @ApiModelProperty(value = "档口商品颜色ID", required = true) + private Long storeProdColorId; + @NotNull(message = "档口商品ID不能为空!") + @ApiModelProperty(value = "档口商品ID", required = true) + private Long storeProdId; + @NotNull(message = "档口商品颜色ID不能为空!") + @ApiModelProperty(value = "档口颜色ID", required = true) + private Long storeColorId; + @NotNull(message = "打印尺码列表不能为空!") + @Valid + @ApiModelProperty(value = "打印尺码列表", required = true) + private List sizeQuantityList; + } + + @Data + @Accessors(chain = true) + public static class SPSizeVO { + @NotNull(message = "尺码不能为空!") + @ApiModelProperty(value = "尺码", required = true) + private Integer size; + @NotNull(message = "数量不能为空!") + @ApiModelProperty(value = "数量", required = true) + private Integer quantity; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreProdSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreProdSnResVO.java deleted file mode 100644 index 6377be4f3..000000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreProdSnResVO.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.math.BigDecimal; -import java.util.List; - -/** - * @author liujiang - * @version v1.0 - * @date 2025/3/27 15:12 - */ -@Data -@JsonInclude(JsonInclude.Include.NON_NULL) -public class StoreProdSnResVO { - - @ApiModelProperty(value = "错误列表") - List failList; - @ApiModelProperty(value = "成功列表") - List successList; - - @Data - public static class SPSDetailVO { - @ApiModelProperty(value = "档口商品ID") - private Long storeProdId; - @ApiModelProperty(value = "档口商品颜色尺码ID") - private Long storeProdColorId; - @ApiModelProperty(value = "颜色") - private String colorName; - @ApiModelProperty(value = "尺码") - private Integer size; - @ApiModelProperty(value = "商品货号") - private String prodArtNum; - @ApiModelProperty(value = "销售条码") - private String sn; - @ApiModelProperty(value = "销售单价") - private BigDecimal price; - @ApiModelProperty(value = "档口客户优惠金额") - private BigDecimal discount; - } - -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java index a8999af29..aa8b7aa85 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -14,6 +15,7 @@ import java.util.List; * @date 2025/3/27 15:12 */ @Data +@ApiModel(value = "档口销售扫码返回数据") @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreSaleSnResVO { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStockTakingSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStockTakingSnResVO.java index 919de49ee..7932f01eb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStockTakingSnResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStockTakingSnResVO.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -14,6 +15,7 @@ import java.util.List; */ @Data @Accessors(chain = true) +@ApiModel(value = "档口库存返回数据") @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreStockTakingSnResVO { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStorageSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStorageSnResVO.java index 328de9dee..139ae6248 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStorageSnResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreStorageSnResVO.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.xkt.vo.storeProdColorSize; import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -14,6 +15,7 @@ import java.util.List; * @date 2025/3/27 15:12 */ @Data +@ApiModel(value="档口入库扫码返回数据") @Accessors(chain = true) @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreStorageSnResVO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnDTO.java new file mode 100644 index 000000000..e1fde6da9 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnDTO.java @@ -0,0 +1,49 @@ +package com.ruoyi.xkt.dto.storeProdColorSize; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel(value = "打印条码请求入参") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StorePrintSnDTO { + + @ApiModelProperty(value = "档口ID") + private String storeId; + @ApiModelProperty(value = "打印颜色尺码列表") + private List colorSizeList; + + @Data + @Accessors(chain = true) + public static class SPColorSizeVO { + @ApiModelProperty(value = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(value = "档口颜色ID") + private Long storeColorId; + @ApiModelProperty(value = "打印尺码列表") + private List sizeQuantityList; + } + + @Data + @Accessors(chain = true) + public static class SPSizeVO { + @ApiModelProperty(value = "尺码") + private Integer size; + @ApiModelProperty(value = "数量") + private Integer quantity; + } + + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnResDTO.java new file mode 100644 index 000000000..62b3683c3 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StorePrintSnResDTO.java @@ -0,0 +1,36 @@ +package com.ruoyi.xkt.dto.storeProdColorSize; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "打印条码返回前端数据model") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StorePrintSnResDTO { + + @ApiModelProperty(value = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "打印size条码列表") + private List sizeSnList; + + @Data + @Accessors(chain = true) + public static class SPSizeSnDTO { + @ApiModelProperty(value = "尺码") + private Integer size; + @ApiModelProperty(value = "条码列表") + private List snList; + } + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductColorSizeService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductColorSizeService.java index 5ed0fb7c6..0e48cfe86 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductColorSizeService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductColorSizeService.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.service; import com.ruoyi.xkt.dto.storeProdColorSize.*; +import java.util.List; + /** * 档口商品颜色的尺码Service接口 * @@ -33,4 +35,13 @@ public interface IStoreProductColorSizeService { * @return StoreStorageSnResDTO */ StoreStockTakingSnResDTO stockTakingSnList(StoreStockTakingSnDTO snDTO); + + /** + * 打印条码时获取条码 + * + * @param snDTO 条码入参 + * @return StorePrintSnResDTO + */ + List getPrintSnList(StorePrintSnDTO snDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductColorSizeServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductColorSizeServiceImpl.java index 364e10b55..d87113686 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductColorSizeServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductColorSizeServiceImpl.java @@ -1,6 +1,12 @@ package com.ruoyi.xkt.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.xkt.domain.StoreProductColorSize; import com.ruoyi.xkt.dto.storeProdColorSize.*; import com.ruoyi.xkt.mapper.StoreProductColorSizeMapper; import com.ruoyi.xkt.mapper.StoreSaleDetailMapper; @@ -13,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.function.Function; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -45,6 +52,10 @@ public class StoreProductColorSizeServiceImpl implements IStoreProductColorSizeS @Override @Transactional(readOnly = true) public StoreSaleSnResDTO storeSaleSn(StoreSaleSnDTO snDTO) { + // 用户是否为档口管理者或子账户 + if (!SecurityUtils.isAdmin() && !SecurityUtils.isStoreManagerOrSub(Long.valueOf(snDTO.getStoreId()))) { + throw new ServiceException("当前用户非档口管理者或子账号,无权限操作!", HttpStatus.ERROR); + } // 非纯数字,则直接返回 if (!POSITIVE_PATTERN.matcher(snDTO.getSn()).matches()) { return new StoreSaleSnResDTO().setSuccess(Boolean.FALSE).setSn(snDTO.getSn()); @@ -74,6 +85,10 @@ public class StoreProductColorSizeServiceImpl implements IStoreProductColorSizeS @Override @Transactional(readOnly = true) public StoreStorageSnResDTO storageSnList(StoreProdSnDTO snDTO) { + // 用户是否为档口管理者或子账户 + if (!SecurityUtils.isAdmin() && !SecurityUtils.isStoreManagerOrSub(Long.valueOf(snDTO.getStoreId()))) { + throw new ServiceException("当前用户非档口管理者或子账号,无权限操作!", HttpStatus.ERROR); + } List snList = snDTO.getSnList().stream().filter(s -> POSITIVE_PATTERN.matcher(s).matches()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(snList)) { return new StoreStorageSnResDTO().setFailList(snDTO.getSnList()); @@ -123,6 +138,10 @@ public class StoreProductColorSizeServiceImpl implements IStoreProductColorSizeS @Override @Transactional(readOnly = true) public StoreStockTakingSnResDTO stockTakingSnList(StoreStockTakingSnDTO snDTO) { + // 用户是否为档口管理者或子账户 + if (!SecurityUtils.isAdmin() && !SecurityUtils.isStoreManagerOrSub(Long.valueOf(snDTO.getStoreId()))) { + throw new ServiceException("当前用户非档口管理者或子账号,无权限操作!", HttpStatus.ERROR); + } List snList = snDTO.getSnList().stream().filter(s -> POSITIVE_PATTERN.matcher(s).matches()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(snList)) { return new StoreStockTakingSnResDTO().setFailList(snDTO.getSnList()); @@ -162,6 +181,70 @@ public class StoreProductColorSizeServiceImpl implements IStoreProductColorSizeS return new StoreStockTakingSnResDTO().setFailList(failList).setSuccessList(successList); } + /** + * 打印条码时获取条码 + * + * @param snDTO 条码入参 + * @return StorePrintSnResDTO + */ + @Override + @Transactional + public List getPrintSnList(StorePrintSnDTO snDTO) { + // 用户是否为档口管理者或子账户 + if (!SecurityUtils.isAdmin() && !SecurityUtils.isStoreManagerOrSub(Long.valueOf(snDTO.getStoreId()))) { + throw new ServiceException("当前用户非档口管理者或子账号,无权限操作!", HttpStatus.ERROR); + } + // 获取商品颜色尺码基础数据 + List storeProdIdList = snDTO.getColorSizeList().stream().map(StorePrintSnDTO.SPColorSizeVO::getStoreProdId).distinct().collect(Collectors.toList()); + List storeColorIdList = snDTO.getColorSizeList().stream().map(StorePrintSnDTO.SPColorSizeVO::getStoreColorId).distinct().collect(Collectors.toList()); + List colorSizeList = this.prodColorSizeMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductColorSize::getDelFlag, Constants.UNDELETED).in(StoreProductColorSize::getStoreProdId, storeProdIdList) + .in(StoreProductColorSize::getStoreColorId, storeColorIdList)); + if (CollectionUtils.isEmpty(colorSizeList)) { + return new ArrayList<>(); + } + // key storeProdId + storeColorId + size, value storeProductColorSize + Map colorSizeMap = colorSizeList.stream().collect(Collectors + .toMap(x -> x.getStoreProdId() + ":" + x.getStoreColorId() + ":" + x.getSize(), Function.identity())); + // 待更新列表 + List updateList = new ArrayList<>(); + // 返回给前端的待打印条码列表 + List printSnList = new ArrayList<>(); + for (int i = 0; i < snDTO.getColorSizeList().size(); i++) { + final StorePrintSnDTO.SPColorSizeVO colorSizeVO = snDTO.getColorSizeList().get(i); + List sizeQuantityList = colorSizeVO.getSizeQuantityList(); + // storeProductColorId 下 所有的条码 + List sizeSnList = new ArrayList<>(); + for (int j = 0; j < sizeQuantityList.size(); j++) { + final StorePrintSnDTO.SPSizeVO quantityVO = sizeQuantityList.get(j); + // 获取系统条码对应信息 + final String key = colorSizeVO.getStoreProdId() + ":" + colorSizeVO.getStoreColorId() + ":" + quantityVO.getSize(); + StoreProductColorSize colorSize = colorSizeMap.get(key); + if (ObjectUtils.isEmpty(colorSize)) { + continue; + } + // 待打印的下一个条码 + Integer nextSn = colorSize.getNextSn(); + // 当前尺码对应的条码列表 + List snList = new ArrayList<>(); + for (int k = 0; k < quantityVO.getQuantity(); k++) { + nextSn += 1; + // 更新下一次打印的条码编号 + // 取 colorSize 的 nextSn 字段,不足8位填充为8位 + snList.add(colorSize.getSnPrefix() + String.format("%08d", nextSn)); + } + // 更新下一个待打印条码开始值 + updateList.add( colorSize.setNextSn(nextSn)); + sizeSnList.add(new StorePrintSnResDTO.SPSizeSnDTO().setSize(quantityVO.getSize()).setSnList(snList)); + } + printSnList.add(new StorePrintSnResDTO().setStoreProdColorId(colorSizeVO.getStoreProdColorId()).setSizeSnList(sizeSnList)); + } + if (CollectionUtils.isNotEmpty(updateList)) { + this.prodColorSizeMapper.updateById(updateList); + } + return printSnList; + } + /** * 普通销售流程获取条码对应的商品信息 *