wangzhe 11 miesięcy temu
rodzic
commit
891baad95b

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

@@ -137,8 +137,8 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
             nodeCheck.add(map);
         }
         zEngineeringWasteMaterialVo.setNodeCheck(nodeCheck);
-        AtomicReference<Double> pesj = new AtomicReference<>(0.0);
-        AtomicReference<Double> gsj = new AtomicReference<>(0.0);
+        BigDecimal pesj = new BigDecimal(0);
+        BigDecimal gsj = new BigDecimal(0);
         for (int i = 0; i < zEngineeringNodeBos.size(); i++) {
             ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
             for (ZEngineeringInfoBo info: nodeBo.getzEngineeringInfoBoList()) {
@@ -149,21 +149,23 @@ 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 + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        pesj.add(new BigDecimal(Double.toString(item4.getNumber())));
                     }else if("1".equals(type)){
-                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                        gsj.add(new BigDecimal(Double.toString(item4.getNumber())));
+//                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
                     }
                 });
             }
         }
         Map pe = new HashMap(); // PE材料
-        pe.put("actuality", getRoundDouble(pesj.get(), 2)); // 实际
-        pe.put("anticipation", zEngineeringGYVo.getPePreset()); // 预计
-        pe.put("percentage", getRoundDouble(100 * pesj.get() / zEngineeringGYVo.getGcPreset(),2) + "%"); // 占比
+        pe.put("actuality", getRoundDouble(pesj, 2)); // 实际
+        pe.put("anticipation", zEngineeringGYVo.getPePreset()); // 预计  divide zEngineeringGYVo.getGcPreset()
+        pe.put("percentage", getRoundDouble((pesj.multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringGYVo.getGcPreset())),2) + "%"); // 占比
         Map iron = new HashMap(); // 钢材
-        iron.put("actuality", getRoundDouble(gsj.get(), 2)); // 实际
+        iron.put("actuality", getRoundDouble(gsj, 2)); // 实际
         iron.put("anticipation", zEngineeringGYVo.getGcPreset()); // 预计
-        iron.put("percentage", getRoundDouble(100 * gsj.get() / zEngineeringGYVo.getGcPreset(),2) + "%"); // 占比
+        iron.put("percentage", getRoundDouble((gsj.multiply(new BigDecimal(100))).divide(BigDecimal.valueOf(zEngineeringGYVo.getGcPreset())),2) + "%"); // 占比
         zEngineeringWasteMaterialVo.setMaterialPercentagePE(pe);
         zEngineeringWasteMaterialVo.setMaterialPercentageIron(iron);
 //        zEngineeringWasteMaterialVo.setMaterialPercentagePE();
@@ -189,6 +191,9 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
     private double getRoundDouble(double d, int i){
         return BigDecimal.valueOf(d).setScale(i, RoundingMode.HALF_UP).doubleValue();
     }
+    private double getRoundDouble(BigDecimal d, int i){
+        return d.setScale(i, RoundingMode.HALF_UP).doubleValue();
+    }
 
     private List<Map<String, Object>> ReViewGYList(List<ZEngineeringGYVo> list) {
         Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
@@ -302,6 +307,35 @@ 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);
+        for (int i = 0; i < zEngineeringNodeBos.size(); i++) {
+            ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
+            for (ZEngineeringInfoBo info: nodeBo.getzEngineeringInfoBoList()) {
+                System.out.println(info.getzEngineeringMaterialBo());
+                LambdaQueryWrapper<ZEngineeringMaterial> lqw4 = Wrappers.lambdaQuery();
+                lqw4.eq(StringUtils.isNotBlank(info.getId()), ZEngineeringMaterial::getDetailsId, info.getId());
+                List<ZEngineeringMaterial> material= zEngineeringMaterialMapper.selectList(lqw4);
+                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());
+                    }else if("1".equals(type)){
+                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                    }
+                });
+            }
+        }
+        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) + "%"); // 占比
+        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) + "%"); // 占比
+        zEngineeringWasteMaterialVo.setMaterialPercentagePE(pe);
+        zEngineeringWasteMaterialVo.setMaterialPercentageIron(iron);
         return zEngineeringWasteMaterialVo;
     }
 
@@ -357,6 +391,35 @@ 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);
+        for (int i = 0; i < zEngineeringNodeBos.size(); i++) {
+            ZEngineeringNodeBo nodeBo = zEngineeringNodeBos.get(i);
+            for (ZEngineeringInfoBo info: nodeBo.getzEngineeringInfoBoList()) {
+                System.out.println(info.getzEngineeringMaterialBo());
+                LambdaQueryWrapper<ZEngineeringMaterial> lqw4 = Wrappers.lambdaQuery();
+                lqw4.eq(StringUtils.isNotBlank(info.getId()), ZEngineeringMaterial::getDetailsId, info.getId());
+                List<ZEngineeringMaterial> material= zEngineeringMaterialMapper.selectList(lqw4);
+                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());
+                    }else if("1".equals(type)){
+                        gsj.updateAndGet(v -> v + new BigDecimal(Double.toString(item4.getNumber())).doubleValue());
+                    }
+                });
+            }
+        }
+        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) + "%"); // 占比
+        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) + "%"); // 占比
+        zEngineeringWasteMaterialVo.setMaterialPercentagePE(pe);
+        zEngineeringWasteMaterialVo.setMaterialPercentageIron(iron);
         return zEngineeringWasteMaterialVo;
     }