Explorar el Código

裸垫价格计算调整

fgd hace 1 año
padre
commit
16ab900db4

+ 1 - 1
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSpecPriceQueryDto.java

@@ -37,7 +37,7 @@ public class BomSpecPriceQueryDto {
     /**
      * 压纹类型
      */
-    private String embossing;
+    private Long embossing;
 
     /**
      * 长 cm

+ 1 - 0
sd-business/src/main/java/com/sd/business/entity/bom/enums/BomSpecPriceConfigCodeEnum.java

@@ -22,6 +22,7 @@ public enum BomSpecPriceConfigCodeEnum {
     YOGA_MAT_DEPLETION_CONFIG("yoga_mat_depletion_config", "瑜伽垫损耗配置"),
     SKIP_MAT_DEPLETION_CONFIG("skip_mat_depletion_config", "跳绳垫损耗配置"),
     PROCESSING_FEE_CONFIG("processing_fee_config", "加工费配置"),
+    COMPOUNDING_COST_CONFIG("compounding_cost_config", "复合费配置"),
     FREIGHT_CONFIG("freight_config", "运费配置");
 
     private static final Map<String, BomSpecPriceConfigCodeEnum> map = new HashMap<>();

+ 13 - 5
sd-business/src/main/java/com/sd/business/service/bom/impl/BomSpecPriceConfigServiceImpl.java

@@ -118,10 +118,7 @@ public class BomSpecPriceConfigServiceImpl extends ServiceImpl<BomSpecPriceConfi
 
         // 获取压纹配置
         BigDecimal embossingHeight = BigDecimal.ZERO;
-        List<BomSpecPriceConfig> bomSpecEmbossingConfigList = configCodeMap.getOrDefault(BomSpecPriceConfigCodeEnum.EMBOSSING_CONFIG.getKey(), Collections.emptyList());
-        BomSpecPriceConfig embossingConfig = bomSpecEmbossingConfigList.stream()
-                .filter(item -> item.getName().contains(dto.getEmbossing()))
-                .findAny().orElse(null);
+        BomSpecPriceConfig embossingConfig = configDetailMap.get(dto.getEmbossing());
         if (embossingConfig != null) {
             embossingHeight = embossingConfig.getHeight();
         }
@@ -169,6 +166,17 @@ public class BomSpecPriceConfigServiceImpl extends ServiceImpl<BomSpecPriceConfi
         BigDecimal processingFee = bomSpecProcessingFeeConfigList.stream()
                 .map(BomSpecPriceConfig::getPrice)
                 .reduce(BigDecimal.ZERO, BigDecimal::add);
+        // 如果是热复合时,增加复合费用
+        if (Objects.equals(categoryDetail.getName(), "热复合")) {
+            List<BomSpecPriceConfig> compoundingCostConfigList = configCodeMap.getOrDefault(BomSpecPriceConfigCodeEnum.COMPOUNDING_COST_CONFIG.getKey(), Collections.emptyList());
+            BomSpecPriceConfig priceConfig = compoundingCostConfigList.stream()
+                    .filter(item -> this.operatorCompareTo(item.getName(), dto.getWidth()))
+                    .findAny().orElse(null);
+            if (priceConfig != null) {
+                processingFee = processingFee.add(priceConfig.getPrice());
+            }
+        }
+
         vo.setProcessingFee(processingFee);
 
         // 获取运费配置
@@ -189,7 +197,7 @@ public class BomSpecPriceConfigServiceImpl extends ServiceImpl<BomSpecPriceConfi
         BigDecimal unitPrice = price
                 .multiply(vo.getLength().add(vo.getCropLength())
                         .multiply(vo.getWidth().add(vo.getCropWidth()))
-                        .divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP))
+                        .divide(BigDecimal.valueOf(10000), 10, RoundingMode.HALF_UP))
                 .multiply(dto.getHeight().add(vo.getEmbossingHeight()))
                 .multiply(BigDecimal.ONE.add(vo.getDepletion().multiply(BigDecimal.valueOf(0.01))))
                 .add(vo.getProcessingFee())

+ 6 - 1
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageBomServiceImpl.java

@@ -141,7 +141,12 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
             if (Objects.equals(inOutStorage.getType(), InOutTypeEnum.OUT.getKey())) {
                 inOutStorageErpExportVo.setDocCode("T118");
             } else {
-                inOutStorageErpExportVo.setDocCode("T119");
+                if (ObjectUtil.equals(inOutStorage.getDetailType(), InDetailTypeEnum.RETURN_GOODS.getKey())
+                        || ObjectUtil.equals(inOutStorage.getDetailType(), InDetailTypeEnum.GIVE_BACK.getKey())) {
+                    inOutStorageErpExportVo.setDocCode("T113");
+                } else {
+                    inOutStorageErpExportVo.setDocCode("T119");
+                }
             }
             // 获取单号 系统单号 XX-yyMMdd-000001
             String[] codes = inOutStorage.getCode().split("-");