فهرست منبع

万里牛同步新增查询瑜伽砖快递bom数据

fgd 1 سال پیش
والد
کامیت
05d7030dd6

+ 20 - 0
sd-wln/src/main/java/com/sd/wln/context/OrderContext.java

@@ -9,6 +9,7 @@ import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.framework.mybatis.holder.LogicHolder;
 import com.sd.business.entity.artwork.po.ArtworkLibrary;
 import com.sd.business.entity.bom.bo.BomSpecBo;
+import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.order.po.*;
 import com.sd.business.entity.price.po.PriceBillingStandard;
@@ -16,6 +17,7 @@ import com.sd.business.entity.price.po.PriceBillingStandardDetail;
 import com.sd.business.entity.sku.po.SkuSpec;
 import com.sd.business.entity.sku.po.SkuSpecLink;
 import com.sd.business.service.artwork.ArtworkLibraryService;
+import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.department.DepartmentService;
 import com.sd.business.service.order.OrderService;
 import com.sd.business.service.order.OrderSkuService;
@@ -38,6 +40,7 @@ public class OrderContext {
     private static final OrderSkuService orderSkuService = SpringUtil.getBean(OrderSkuService.class);
     private static final DepartmentService departmentService = SpringUtil.getBean(DepartmentService.class);
     private static final SkuSpecService skuSpecService = SpringUtil.getBean(SkuSpecService.class);
+    private static final BomSpecService bomSpecService = SpringUtil.getBean(BomSpecService.class);
     private static final SkuSpecLinkService skuSpecLinkService = SpringUtil.getBean(SkuSpecLinkService.class);
     private static final PriceBillingStandardService priceBillingStandardService = SpringUtil.getBean(PriceBillingStandardService.class);
     private static final PriceBillingStandardDetailService priceBillingStandardDetailService = SpringUtil.getBean(PriceBillingStandardDetailService.class);
@@ -133,6 +136,13 @@ public class OrderContext {
     private Map<Long, BomSpecBo> bomSpecBoMap;
 
     /**
+     * 快递包装bom规格明细
+     * key:bom规格品号
+     * value:bom规格明细
+     */
+    private Map<String, BomSpec> deliveryMaterialsBomSpecMap;
+
+    /**
      * 生产文件
      */
     private Map<Long, ArtworkLibrary> artworkLibraryMap;
@@ -245,6 +255,16 @@ public class OrderContext {
     }
 
     /**
+     * 获取bom规格明细
+     */
+    public Map<String, BomSpec> getDeliveryMaterialsBomSpecMap() {
+        if (deliveryMaterialsBomSpecMap == null) {
+            deliveryMaterialsBomSpecMap = bomSpecService.mapKEntity(BomSpec::getCode, q -> q.in(BomSpec::getCode, "40305028", "40305032", "40305033"));
+        }
+        return deliveryMaterialsBomSpecMap;
+    }
+
+    /**
      * 获取加工计费标准明细列表
      */
     public List<PriceBillingStandardDetail> getPriceBillingStandardMap(String species) {

+ 8 - 12
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -538,29 +538,25 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             }
         }
 
-        Map<Long, BomSpecBo> bomSpecBoMap = context.getBomSpecBoMap();
-        List<String> packageBomSpecList = Arrays.asList("40305028", "40305032", "40305033");
-        Map<String, BomSpecBo> packageBomSpecMap = bomSpecBoMap.values().stream()
-                .filter(item -> packageBomSpecList.contains(item.getBomSpecCode()))
-                .collect(Collectors.toMap(BomSpecBo::getBomSpecCode, Function.identity()));
-        Long bomSpecId = packageBomSpecMap.get("40305028").getBomSpecId();
+        Map<String, BomSpec> deliveryMaterialsBomSpecMap = context.getDeliveryMaterialsBomSpecMap();
+        Long bomSpecId = deliveryMaterialsBomSpecMap.get("40305028").getId();
         OrderPackageBom orderPackageBomVo = map.get(bomSpecId);
         // 判断是否有装瑜伽砖快递袋,2-4个数量更换快递包材
         if (orderPackageBomVo != null
                 && orderPackageBomVo.getQuantity().compareTo(BigDecimal.valueOf(2)) >= 0
                 && orderPackageBomVo.getQuantity().compareTo(BigDecimal.valueOf(4)) <= 0) {
-            BomSpecBo bomSpec;
+            BomSpec bomSpec;
             if (orderPackageBomVo.getQuantity().compareTo(BigDecimal.valueOf(2)) == 0) {
-                bomSpec = packageBomSpecMap.get("40305032");
+                bomSpec = deliveryMaterialsBomSpecMap.get("40305032");
             } else {
-                bomSpec = packageBomSpecMap.get("40305033");
+                bomSpec = deliveryMaterialsBomSpecMap.get("40305033");
             }
             OrderPackageBomVo packageBomVo = new OrderPackageBomVo();
-            packageBomVo.setBomSpecName(bomSpec.getBomSpecName());
-            packageBomVo.setBomSpecCode(bomSpec.getBomSpecCode());
+            packageBomVo.setBomSpecName(bomSpec.getName());
+            packageBomVo.setBomSpecCode(bomSpec.getCode());
             packageBomVo.setCostPrice(bomSpec.getCostPrice());
             packageBomVo.setInternalSellingPrice(bomSpec.getInternalSellingPrice());
-            packageBomVo.setBomSpecId(bomSpec.getBomSpecId());
+            packageBomVo.setBomSpecId(bomSpec.getId());
             packageBomVo.setQuantity(BigDecimal.ONE);
             map.put(bomSpecId, packageBomVo);