Browse Source

同步订单不为主材不赋值价格计费标准价格

24282 1 year ago
parent
commit
76975e8521

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/bom/bo/BomBo.java

@@ -39,4 +39,9 @@ public class BomBo {
      */
      */
     private BigDecimal externalSellingPrice;
     private BigDecimal externalSellingPrice;
 
 
+    /**
+     * 分类父id
+     */
+    private Long classifyParentId;
+
 }
 }

+ 5 - 3
sd-business/src/main/resources/mapper/sku/SkuSpecMapper.xml

@@ -24,15 +24,17 @@
     </select>
     </select>
 
 
     <select id="getBomBoList" resultType="com.sd.business.entity.bom.bo.BomBo">
     <select id="getBomBoList" resultType="com.sd.business.entity.bom.bo.BomBo">
-        SELECT ss.id skuSpecId,
+        SELECT ss.id        skuSpecId,
                ss.machined_panel,
                ss.machined_panel,
-               bs.id bomSpecId,
+               bs.id        bomSpecId,
                bs.internal_selling_price,
                bs.internal_selling_price,
                bs.external_selling_price,
                bs.external_selling_price,
-               b.id  bomId
+               b.id         bomId,
+               bc.parent_id classifyParentId
         FROM sku_spec ss
         FROM sku_spec ss
                  INNER JOIN bom_spec bs ON ss.bom_spec_id = bs.id
                  INNER JOIN bom_spec bs ON ss.bom_spec_id = bs.id
                  INNER JOIN bom b ON bs.bom_id = b.id
                  INNER JOIN bom b ON bs.bom_id = b.id
+                 LEFT JOIN bom_classify bc on b.bom_classify_id = bc.id
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
     </select>
     </select>
 
 

+ 13 - 1
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -424,7 +424,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                 assignedPackagingMaterialCost(orderSku, saveOrderSkuBomList);
                 assignedPackagingMaterialCost(orderSku, saveOrderSkuBomList);
 
 
                 // 赋值其他价格
                 // 赋值其他价格
-                assignedOtherPrice(orderSku, orderInfo.getDepartmentId(),
+                assignedOtherPrice(orderSku, orderInfo.getDepartmentId(), bomBoMap,
                         departmentIdPriceBillingStandardIdMap, priceBillingStandardMap, skuSpecMap);
                         departmentIdPriceBillingStandardIdMap, priceBillingStandardMap, skuSpecMap);
 
 
                 // 添加订单金额
                 // 添加订单金额
@@ -463,6 +463,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
      */
      */
     private void assignedOtherPrice(OrderSku orderSku,
     private void assignedOtherPrice(OrderSku orderSku,
                                     Long departmentId,
                                     Long departmentId,
+                                    Map<Long, BomBo> bomBoMap,
                                     Map<Long, Long> departmentIdPriceBillingStandardIdMap,
                                     Map<Long, Long> departmentIdPriceBillingStandardIdMap,
                                     Map<Long, List<PriceBillingStandardDetail>> priceBillingStandardMap,
                                     Map<Long, List<PriceBillingStandardDetail>> priceBillingStandardMap,
                                     Map<String, SkuSpec> skuSpecMap) {
                                     Map<String, SkuSpec> skuSpecMap) {
@@ -472,6 +473,17 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         orderSku.setDeliveryMaterialsFee(BigDecimal.ZERO);
         orderSku.setDeliveryMaterialsFee(BigDecimal.ZERO);
         orderSku.setPackingLabor(BigDecimal.ZERO);
         orderSku.setPackingLabor(BigDecimal.ZERO);
 
 
+        // 没绑定bom规格,不赋值价格
+        BomBo bomBo = bomBoMap.get(orderSku.getSkuSpecId());
+        if (bomBo == null) {
+            return;
+        }
+
+        // 如果bom规格不为主材,不赋值价格
+        if (ObjectUtil.notEqual(bomBo.getClassifyParentId(), 1L)) {
+            return;
+        }
+
         // 获取加工计费标准id
         // 获取加工计费标准id
         Long priceBillingStandardId = departmentIdPriceBillingStandardIdMap.get(departmentId);
         Long priceBillingStandardId = departmentIdPriceBillingStandardIdMap.get(departmentId);
         if (priceBillingStandardId == null) {
         if (priceBillingStandardId == null) {