wangzhe 11 месяцев назад
Родитель
Сommit
98ca94cb82

+ 13 - 13
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringWasteMaterialServiceImpl.java

@@ -164,7 +164,7 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
         Map pe = new HashMap(); // PE材料
         pe.put("actuality", getRoundDouble(pesj.get(), 2)); // 实际
         pe.put("anticipation", zEngineeringGYVo.getPePreset()); // 预计  divide zEngineeringGYVo.getGcPreset()
-        pe.put("percentage", getRoundDouble((pesj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringGYVo.getGcPreset())),2) + "%"); // 占比
+        pe.put("percentage", getRoundDouble((pesj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringGYVo.getPePreset())),2) + "%"); // 占比
         Map iron = new HashMap(); // 钢材
         iron.put("actuality", getRoundDouble(gsj.get(), 2)); // 实际
         iron.put("anticipation", zEngineeringGYVo.getGcPreset()); // 预计
@@ -310,8 +310,8 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
 //            ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
 //        }
 //        zEngineeringWasteMaterialVo.setMaterialPercentagePE();
-        AtomicReference<Double> pesj = new AtomicReference<>(0.0);
-        AtomicReference<Double> gsj = new AtomicReference<>(0.0);
+        AtomicReference<BigDecimal> pesj = new AtomicReference<>(new BigDecimal(0));
+        AtomicReference<BigDecimal> gsj = new AtomicReference<>(new BigDecimal(0));
         for (int i = 0; i < zEngineeringNodeBos.size(); i++) {
             ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
             for (ZEngineeringInfoBo info: nodeBo.getzEngineeringInfoBoList()) {
@@ -322,9 +322,9 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
                 material.stream().forEach(item4->{
                     String type = zEnginMaterialQualityMapper.selectVoById(item4.getMaterialQuality()).getMaterialType();
                     if("0".equals(type)){
-                        pesj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        pesj.updateAndGet(v ->v.add(new BigDecimal(Double.toString(item4.getNumber()))));
                     }else if("1".equals(type)){
-                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        gsj.updateAndGet(v ->v.add(new BigDecimal(Double.toString(item4.getNumber()))));
                     }
                 });
             }
@@ -332,11 +332,11 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
         Map pe = new HashMap(); // PE材料
         pe.put("actuality", getRoundDouble(pesj.get(), 2)); // 实际
         pe.put("anticipation", zEngineeringIndustryVo.getPePreset()); // 预计
-        pe.put("percentage", getRoundDouble(100 * pesj.get() / zEngineeringIndustryVo.getGcPreset(),2) + "%"); // 占比
+        pe.put("percentage", getRoundDouble((pesj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringIndustryVo.getPePreset())),2) + "%"); // 占比
         Map iron = new HashMap(); // 钢材
         iron.put("actuality", getRoundDouble(gsj.get(), 2)); // 实际
         iron.put("anticipation", zEngineeringIndustryVo.getGcPreset()); // 预计
-        iron.put("percentage", getRoundDouble(100 * gsj.get() / zEngineeringIndustryVo.getGcPreset(),2) + "%"); // 占比
+        iron.put("percentage", getRoundDouble((gsj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringIndustryVo.getGcPreset())),2) + "%"); // 占比
         zEngineeringWasteMaterialVo.setMaterialPercentagePE(pe);
         zEngineeringWasteMaterialVo.setMaterialPercentageIron(iron);
         return zEngineeringWasteMaterialVo;
@@ -394,8 +394,8 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
 //            ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
 //        }
 //        zEngineeringWasteMaterialVo.setMaterialPercentagePE();
-        AtomicReference<Double> pesj = new AtomicReference<>(0.0);
-        AtomicReference<Double> gsj = new AtomicReference<>(0.0);
+        AtomicReference<BigDecimal> pesj = new AtomicReference<>(new BigDecimal(0));
+        AtomicReference<BigDecimal> gsj = new AtomicReference<>(new BigDecimal(0));
         for (int i = 0; i < zEngineeringNodeBos.size(); i++) {
             ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
             for (ZEngineeringInfoBo info: nodeBo.getzEngineeringInfoBoList()) {
@@ -406,9 +406,9 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
                 material.stream().forEach(item4->{
                     String type = zEnginMaterialQualityMapper.selectVoById(item4.getMaterialQuality()).getMaterialType();
                     if("0".equals(type)){
-                        pesj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        pesj.updateAndGet(v ->v.add(new BigDecimal(Double.toString(item4.getNumber()))));
                     }else if("1".equals(type)){
-                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        gsj.updateAndGet(v ->v.add(new BigDecimal(Double.toString(item4.getNumber()))));
                     }
                 });
             }
@@ -416,11 +416,11 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
         Map pe = new HashMap(); // PE材料
         pe.put("actuality", getRoundDouble(pesj.get(), 2)); // 实际
         pe.put("anticipation", zEngineeringPipeJackingVo.getPePreset()); // 预计
-        pe.put("percentage", getRoundDouble(100 * pesj.get() / zEngineeringPipeJackingVo.getGcPreset(),2) + "%"); // 占比
+        pe.put("percentage", getRoundDouble((pesj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringPipeJackingVo.getPePreset())),2) + "%"); // 占比
         Map iron = new HashMap(); // 钢材
         iron.put("actuality", getRoundDouble(gsj.get(), 2)); // 实际
         iron.put("anticipation", zEngineeringPipeJackingVo.getGcPreset()); // 预计
-        iron.put("percentage", getRoundDouble(100 * gsj.get() / zEngineeringPipeJackingVo.getGcPreset(),2) + "%"); // 占比
+        iron.put("percentage", getRoundDouble((gsj.get().multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringPipeJackingVo.getGcPreset())),2) + "%"); // 占比
         zEngineeringWasteMaterialVo.setMaterialPercentagePE(pe);
         zEngineeringWasteMaterialVo.setMaterialPercentageIron(iron);
         return zEngineeringWasteMaterialVo;