|
@@ -1,6 +1,7 @@
|
|
|
package com.sd.business.service.sku.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ruoyi.common.constant.StatusConstant;
|
|
@@ -12,18 +13,20 @@ import com.sd.business.entity.sku.dto.SkuDefaultPackageSpecDto;
|
|
|
import com.sd.business.entity.sku.dto.SkuDefaultPackageSpecSelectDto;
|
|
|
import com.sd.business.entity.sku.po.SkuDefaultPackage;
|
|
|
import com.sd.business.entity.sku.po.SkuDefaultPackageSpec;
|
|
|
+import com.sd.business.entity.sku.po.SkuSpec;
|
|
|
+import com.sd.business.entity.sku.po.SkuSpecLink;
|
|
|
import com.sd.business.entity.sku.vo.SkuDefaultPackageSpecVo;
|
|
|
import com.sd.business.mapper.sku.SkuDefaultPackageSpecMapper;
|
|
|
import com.sd.business.service.bom.BomSpecService;
|
|
|
import com.sd.business.service.sku.SkuDefaultPackageService;
|
|
|
import com.sd.business.service.sku.SkuDefaultPackageSpecService;
|
|
|
+import com.sd.business.service.sku.SkuSpecLinkService;
|
|
|
+import com.sd.business.service.sku.SkuSpecService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -43,6 +46,12 @@ public class SkuDefaultPackageSpecServiceImpl extends ServiceImpl<SkuDefaultPack
|
|
|
@Autowired
|
|
|
private BomSpecService bomSpecService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SkuSpecService skuSpecService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SkuSpecLinkService skuSpecLinkService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<SkuDefaultPackageSpecVo> getPage(SkuDefaultPackageSpecSelectDto dto) {
|
|
|
IWrapper<SkuDefaultPackageSpec> wrapper = getWrapper();
|
|
@@ -156,7 +165,6 @@ public class SkuDefaultPackageSpecServiceImpl extends ServiceImpl<SkuDefaultPack
|
|
|
result.add(commonPackingBomDetailVo);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
bomSpecService.attributeAssign(result, CommonPackingBomDetail::getBomSpecId, (item, bomSpec) -> {
|
|
|
item.setBomSpecName(bomSpec.getName());
|
|
|
item.setBomSpecCode(bomSpec.getCode());
|
|
@@ -165,4 +173,158 @@ public class SkuDefaultPackageSpecServiceImpl extends ServiceImpl<SkuDefaultPack
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void refresh() {
|
|
|
+ List<SkuSpec> list = skuSpecService.list();
|
|
|
+
|
|
|
+ Map<Long, SkuDefaultPackage> skuDefaultPackageMap = skuDefaultPackageService.mapKEntity(SkuDefaultPackage::getSkuId, null);
|
|
|
+
|
|
|
+ Map<String, SkuDefaultPackageSpec> map = new HashMap<>();
|
|
|
+ List<SkuDefaultPackageSpec> skuDefaultPackageSpecList = list();
|
|
|
+ for (SkuDefaultPackageSpec skuDefaultPackageSpec : skuDefaultPackageSpecList) {
|
|
|
+ for (String spec : skuDefaultPackageSpec.getSpec().split("/")) {
|
|
|
+ if (StrUtil.isBlank(spec)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ map.put(spec, skuDefaultPackageSpec);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SkuSpecLink> skuSpecLinkList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (SkuSpec skuSpec : list) {
|
|
|
+
|
|
|
+ BigDecimal length = skuSpec.getLength();
|
|
|
+ BigDecimal width = skuSpec.getWidth();
|
|
|
+ BigDecimal height = skuSpec.getHeight();
|
|
|
+
|
|
|
+ String spec = new StringJoiner("*")
|
|
|
+ .add(length.stripTrailingZeros().toString())
|
|
|
+ .add(width.stripTrailingZeros().toString())
|
|
|
+ .add(height.stripTrailingZeros().toString())
|
|
|
+ .toString();
|
|
|
+
|
|
|
+ SkuDefaultPackageSpec skuDefaultPackageSpec = map.get(spec);
|
|
|
+ SkuDefaultPackage skuDefaultPackage = skuDefaultPackageMap.get(skuSpec.getSkuId());
|
|
|
+
|
|
|
+ if (skuDefaultPackageSpec == null || skuDefaultPackage == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getColouredPaper()) && Objects.nonNull(skuDefaultPackageSpec.getColouredPaperId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getColouredPaperId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getOppMembrane()) && Objects.nonNull(skuDefaultPackageSpec.getOppMembraneId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getOppMembraneId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getPeBag()) && Objects.nonNull(skuDefaultPackageSpec.getPeBagId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getPeBagId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getMeshBag()) && Objects.nonNull(skuDefaultPackageSpec.getMeshBagId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getMeshBagId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getPaperBox()) && Objects.nonNull(skuDefaultPackageSpec.getPaperBoxId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getPaperBoxId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getBubblePack()) && Objects.nonNull(skuDefaultPackageSpec.getBubblePackId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getBubblePackId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getLogisticsPackagingMaterial()) && Objects.nonNull(skuDefaultPackageSpec.getLogisticsPackagingMaterialId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getLogisticsPackagingMaterialId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getOtherPackingMaterial()) && Objects.nonNull(skuDefaultPackageSpec.getOtherPackingMaterialId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getOtherPackingMaterialId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getSelfAdhesiveSticker()) && Objects.nonNull(skuDefaultPackageSpec.getSelfAdhesiveStickerId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getSelfAdhesiveStickerId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getDrop()) && Objects.nonNull(skuDefaultPackageSpec.getDropId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getDropId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getSuspenders()) && Objects.nonNull(skuDefaultPackageSpec.getSuspendersId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getSuspendersId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+ if (StatusConstant.YES.equals(skuDefaultPackage.getAccessory()) && Objects.nonNull(skuDefaultPackageSpec.getAccessoryId())) {
|
|
|
+ SkuSpecLink skuSpecLink = new SkuSpecLink();
|
|
|
+ skuSpecLink.setSkuId(skuSpec.getSkuId());
|
|
|
+ skuSpecLink.setSkuSpecId(skuSpec.getId());
|
|
|
+ skuSpecLink.setBomSpecId(skuDefaultPackageSpec.getAccessoryId());
|
|
|
+ skuSpecLink.setType(1);
|
|
|
+ skuSpecLink.setQuantity(BigDecimal.ONE);
|
|
|
+ skuSpecLinkList.add(skuSpecLink);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ skuSpecLinkService.remove(q -> q.eq(SkuSpecLink::getType, 1));
|
|
|
+ skuSpecLinkService.saveBatch(skuSpecLinkList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|