qianxb 6 месяцев назад
Родитель
Сommit
16189ffb3c

+ 8 - 4
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractMaterialAdjustServiceImpl.java

@@ -76,7 +76,7 @@ public class ContractMaterialAdjustServiceImpl extends BaseServiceImpl<ContractM
                 if (detail.getChangeTotal() == null){
                     throw new ServiceException("请填写["+detail.getFormName()+"]可调量");
                 }
-                detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()).setScale(3,RoundingMode.HALF_UP));
+                detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()));
                 adjustTotal = adjustTotal.add(detail.getAdjustTotal());
             }
             adjustDetailService.saveBatch(details);
@@ -162,7 +162,7 @@ public class ContractMaterialAdjustServiceImpl extends BaseServiceImpl<ContractM
                 if (detail.getChangeTotal() == null){
                     throw new ServiceException("请填写["+detail.getFormName()+"]可调量");
                 }
-                detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()).setScale(3,RoundingMode.HALF_UP));
+                detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()));
                 adjustTotal = adjustTotal.add(detail.getAdjustTotal());
             }
             adjustDetailService.saveBatch(details);
@@ -221,7 +221,7 @@ public class ContractMaterialAdjustServiceImpl extends BaseServiceImpl<ContractM
             if (detail.getChangeTotal() == null){
                 throw new ServiceException("请填写["+detail.getFormName()+"]可调量");
             }
-            detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()).setScale(3,RoundingMode.HALF_UP));
+            detail.setAdjustTotal(detail.getChangeTotal().multiply(detail.getAdjustFactor()));
             adjustTotal = adjustTotal.add(detail.getAdjustTotal());
         }
         this.buildCalculation(dto,adjustTotal,adjust);
@@ -232,12 +232,16 @@ public class ContractMaterialAdjustServiceImpl extends BaseServiceImpl<ContractM
      * 生成材料调差计算式
      */
     private void buildCalculation(ContractMaterialAdjustAddDTO dto,BigDecimal adjustTotal,ContractMaterialAdjust adjust){
-        adjust.setAdjustTotal(adjustTotal);
         //获取材料信息,用于调差范围
         ContractMaterial material= baseMapper.getMaterialInfo(dto.getContractMaterialId());
         if (material == null){
             throw new ServiceException("未获取到材料信息");
         }
+        if ("t".equals(material.getUnit()) || "T".equals(material.getUnit())){
+            adjust.setAdjustTotal(adjustTotal.setScale(3,RoundingMode.HALF_UP));
+        }else {
+            adjust.setAdjustTotal(adjustTotal.setScale(2,RoundingMode.HALF_UP));
+        }
         //获取材料有效期
         ContractMaterialValidity validity = validityService.getById(dto.getMaterialValidityId());
         //计算调差金额,生成计算式