24282 1 年間 前
コミット
de79ef61a5

+ 0 - 1
sd-business/src/main/java/com/sd/business/controller/bom/BomSpecController.java

@@ -16,5 +16,4 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/bomSpec")
 public class BomSpecController {
 
-
 }

+ 10 - 0
sd-business/src/main/java/com/sd/business/entity/sku/vo/SkuSpecLinkVo.java

@@ -14,4 +14,14 @@ import lombok.Setter;
 @Setter
 public class SkuSpecLinkVo extends SkuSpecLink {
 
+    /**
+     * bom规格编码
+     */
+    private String bomSpecCode;
+
+    /**
+     * bom规格名称
+     */
+    private String bomSpecName;
+
 }

+ 22 - 0
sd-business/src/main/java/com/sd/business/entity/sku/vo/SkuSpecVo.java

@@ -4,6 +4,8 @@ import com.sd.business.entity.sku.po.SkuSpec;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * sku规格列表查询返回值实体
  *
@@ -15,6 +17,16 @@ import lombok.Setter;
 public class SkuSpecVo extends SkuSpec {
 
     /**
+     * bom规格编码
+     */
+    private String bomSpecCode;
+
+    /**
+     * bom规格名称
+     */
+    private String bomSpecName;
+
+    /**
      * 设计图
      */
     private String designImgUrl;
@@ -24,4 +36,14 @@ public class SkuSpecVo extends SkuSpec {
      */
     private String sharedFolder;
 
+    /**
+     * 包材
+     */
+    private List<SkuSpecLinkVo> packagingMaterialList;
+
+    /**
+     * 快递包装
+     */
+    private List<SkuSpecLinkVo> expressPackingList;
+
 }

+ 2 - 5
sd-business/src/main/java/com/sd/business/service/bom/impl/BomServiceImpl.java

@@ -27,10 +27,7 @@ import com.sd.framework.util.sql.Sql;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -103,7 +100,7 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
                 .like(StrUtil.isNotBlank(dto.getBomSpecName()), BomSpec::getName, dto.getBomSpecName()));
 
         for (BomVo record : records) {
-            record.setBomSpecList(bomSpecIdMap.get(record.getId()));
+            record.setBomSpecList(bomSpecIdMap.getOrDefault(record.getId(), Collections.emptyList()));
         }
 
         return page;

+ 28 - 4
sd-business/src/main/java/com/sd/business/service/sku/impl/SkuServiceImpl.java

@@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.sd.business.entity.artwork.po.ArtworkLibrary;
+import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.sku.dto.SkuDto;
 import com.sd.business.entity.sku.dto.SkuSelectDto;
 import com.sd.business.entity.sku.dto.SkuSpecDto;
 import com.sd.business.entity.sku.po.Sku;
 import com.sd.business.entity.sku.po.SkuSpec;
 import com.sd.business.entity.sku.po.SkuSpecLink;
+import com.sd.business.entity.sku.vo.SkuSpecLinkVo;
 import com.sd.business.entity.sku.vo.SkuSpecVo;
 import com.sd.business.entity.sku.vo.SkuVo;
 import com.sd.business.mapper.sku.SkuMapper;
@@ -106,16 +108,38 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
                 .selectAll(SkuSpec.class)
                 .selectAs(ArtworkLibrary::getImgUrl, SkuSpecVo::getDesignImgUrl)
                 .selectAs(ArtworkLibrary::getFileUrl, SkuSpecVo::getSharedFolder)
-                .from(SkuSpecVo.class)
+                .selectAs(BomSpec::getCode, SkuSpecVo::getBomSpecCode)
+                .selectAs(BomSpec::getName, SkuSpecVo::getBomSpecName)
+
+                .from(SkuSpec.class)
                 .leftJoin(ArtworkLibrary.class, ArtworkLibrary::getId, SkuSpec::getArtworkLibraryId)
+                .leftJoin(BomSpec.class, BaseIdPo::getId, SkuSpec::getBomSpecId)
+
                 .eq(SkuSpec::getSkuId, id)
                 .list();
         vo.setSkuSpecList(skuSpecList);
 
         // 复制包材和快递包材
-        //Sql.create(SkuSpecLinkVo.class)
-        //        .selectAll(SkuSpecLink.class)
-        //        .selectAs()
+        Map<Long, Map<Integer, List<SkuSpecLinkVo>>> map = Sql.create(SkuSpecLinkVo.class)
+                .selectAll(SkuSpecLink.class)
+                .selectAs(BomSpec::getCode, SkuSpecLinkVo::getBomSpecCode)
+                .selectAs(BomSpec::getName, SkuSpecLinkVo::getBomSpecName)
+
+                .from(SkuSpecLink.class)
+                .leftJoin(BomSpec.class, BomSpec::getId, SkuSpecLink::getBomSpecId)
+
+                .eq(SkuSpecLink::getSkuId, id)
+                .list()
+
+                .stream()
+                .collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId, Collectors.groupingBy(SkuSpecLink::getType)));
+
+        for (SkuSpecVo skuSpecVo : skuSpecList) {
+            Map<Integer, List<SkuSpecLinkVo>> typeSkuSpecLinkMap = map.getOrDefault(skuSpecVo.getId(), Collections.emptyMap());
+
+            skuSpecVo.setPackagingMaterialList(typeSkuSpecLinkMap.getOrDefault(1, Collections.emptyList()));
+            skuSpecVo.setExpressPackingList(typeSkuSpecLinkMap.getOrDefault(2, Collections.emptyList()));
+        }
 
         return vo;
     }

+ 3 - 3
sd-framework/src/main/java/com/sd/framework/util/sql/From.java

@@ -26,7 +26,7 @@ public class From<T> extends Where<T> {
     }
 
     public <K, V> From<T> leftJoin(String as1, Class<K> cls1, SFunction<K, ?> on1, String as2, SFunction<V, ?> on2) {
-        sql.fromList.add(" LEFT JOIN " + Sql.getTableName(cls1) + StringPool.EMPTY + as1 + " ON " +
+        sql.fromList.add(" LEFT JOIN " + Sql.getTableName(cls1) + StringPool.SPACE + as1 + " ON " +
                 sql.getSqlFieldName(as1, on1) + " = " + sql.getSqlFieldName(as2, on2));
         return this;
     }
@@ -44,7 +44,7 @@ public class From<T> extends Where<T> {
     }
 
     public <K, V> From<T> rightJoin(String as1, Class<K> cls1, SFunction<K, ?> on1, String as2, SFunction<V, ?> on2) {
-        sql.fromList.add(" RIGHT JOIN " + Sql.getTableName(cls1) + StringPool.EMPTY + as1 + " ON " +
+        sql.fromList.add(" RIGHT JOIN " + Sql.getTableName(cls1) + StringPool.SPACE + as1 + " ON " +
                 sql.getSqlFieldName(as1, on1) + " = " + sql.getSqlFieldName(as2, on2));
         return this;
     }
@@ -62,7 +62,7 @@ public class From<T> extends Where<T> {
     }
 
     public <K, V> From<T> innerJoin(String as1, Class<K> cls1, SFunction<K, ?> on1, String as2, SFunction<V, ?> on2) {
-        sql.fromList.add(" INNER JOIN " + Sql.getTableName(cls1) + StringPool.EMPTY + as1 + " ON " +
+        sql.fromList.add(" INNER JOIN " + Sql.getTableName(cls1) + StringPool.SPACE + as1 + " ON " +
                 sql.getSqlFieldName(as1, on1) + " = " + sql.getSqlFieldName(as2, on2));
         return this;
     }