24282 1 rok pred
rodič
commit
cd7ca79198

+ 5 - 0
sd-business/src/main/java/com/sd/business/controller/sku/SkuDefaultPackageSpecController.java

@@ -76,5 +76,10 @@ public class SkuDefaultPackageSpecController {
         return skuDefaultPackageSpecService.getPackLiLst(dto);
     }
 
+    @PostMapping("/refresh")
+    public void refresh() {
+        skuDefaultPackageSpecService.refresh();
+    }
+
 
 }

+ 2 - 0
sd-business/src/main/java/com/sd/business/service/sku/SkuDefaultPackageSpecService.java

@@ -48,4 +48,6 @@ public interface SkuDefaultPackageSpecService extends BaseService<SkuDefaultPack
 
     List<CommonPackingBomDetailVo> getPackLiLst(SkuDefaultPackageSpecSelectDto dto);
 
+    void refresh();
+
 }

+ 167 - 5
sd-business/src/main/java/com/sd/business/service/sku/impl/SkuDefaultPackageSpecServiceImpl.java

@@ -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);
+
+    }
+
 }