qiangxuan 8 сар өмнө
parent
commit
3c690a4791

+ 3 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/fpgLeanModel/entity/ModelDataResult.java

@@ -23,4 +23,7 @@ public class ModelDataResult {
     /**创建时间*/
     @ApiModelProperty(value = "创建时间")
     private String createTime;
+
+    @ApiModelProperty(value = "峰平谷名称百分比")
+    private String key1;
 }

+ 69 - 1
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/fpgLeanModel/service/impl/FpgLeanModelServiceImpl.java

@@ -26,6 +26,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -187,8 +189,73 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
             // 谷峰差统计报表
             jsonResult = JSON.parseArray(JSON.toJSONString(combinedList));
         }else if ("total_day_wp_report".equals(leanModelCode)) {
+
             // 龙钢变各工序报表
-            jsonResult = JSON.parseArray(JSON.toJSONString(combinedList));
+            List<ModelDataResult> modelDataResults = new ArrayList<>();
+            for (ModelReportFormResult modelReportFormResult : combinedList) {
+
+                BigDecimal sum = modelReportFormResult.getTopsPower().add(modelReportFormResult.getPeaksPower()).add(modelReportFormResult.getFlatPower()).add(modelReportFormResult.getValleysPower());
+
+                // 先获取公共属性值,避免在循环内多次重复获取
+                String deviceTitle = modelReportFormResult.getDeviceTitle();
+                String deviceRegionId = modelReportFormResult.getDeviceRegionId();
+                String deviceInformationId = modelReportFormResult.getDeviceInformationId();
+                String createTime = modelReportFormResult.getCreateTime();
+                for (int i = 0; i < 9; i++) {
+                    ModelDataResult modelDataResult = new ModelDataResult();
+                    if (i == 0){
+                        modelDataResult.setKey("尖");
+                        modelDataResult.setKey1("尖");
+                        modelDataResult.setValue(modelReportFormResult.getTopsPower());
+                    }
+                    if (i == 1){
+                        modelDataResult.setKey("尖");
+                        modelDataResult.setKey1("尖(%)");
+                        modelDataResult.setValue(modelReportFormResult.getTopsPower().divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                    }
+                    if (i == 2){
+                        modelDataResult.setKey("峰");
+                        modelDataResult.setKey1("峰");
+                        modelDataResult.setValue(modelReportFormResult.getPeaksPower());
+                    }
+                    if (i == 3){
+                        modelDataResult.setKey("峰");
+                        modelDataResult.setKey1("峰(%)");
+                        modelDataResult.setValue(modelReportFormResult.getPeaksPower().divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                    }
+                    if (i == 4){
+                        modelDataResult.setKey("平");
+                        modelDataResult.setKey1("平");
+                        modelDataResult.setValue(modelReportFormResult.getFlatPower());
+                    }
+                    if (i == 5){
+                        modelDataResult.setKey("平");
+                        modelDataResult.setKey1("平(%)");
+                        modelDataResult.setValue(modelReportFormResult.getFlatPower().divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                    }
+                    if (i == 6){
+                        modelDataResult.setKey("谷");
+                        modelDataResult.setKey1("谷");
+                        modelDataResult.setValue(modelReportFormResult.getValleysPower());
+                    }
+                    if (i == 7){
+                        modelDataResult.setKey("谷");
+                        modelDataResult.setKey1("谷(%)");
+                        modelDataResult.setValue(modelReportFormResult.getValleysPower().add(modelReportFormResult.getPeaksPower()).add(modelReportFormResult.getFlatPower()).add(modelReportFormResult.getValleysPower()));
+                    }
+                    if (i == 8){
+                        modelDataResult.setKey("反有总");
+                        modelDataResult.setKey1("反有总");
+                        modelDataResult.setValue(modelReportFormResult.getTopsPower().add(modelReportFormResult.getPeaksPower()).add(modelReportFormResult.getFlatPower()).add(modelReportFormResult.getValleysPower()));
+                    }
+                    modelDataResult.setDeviceTitle(deviceTitle);
+                    modelDataResult.setDeviceRegionId(deviceRegionId);
+                    modelDataResult.setDeviceInformationId(deviceInformationId);
+                    modelDataResult.setCreateTime(createTime);
+                    modelDataResults.add(modelDataResult);
+                }
+            }
+            jsonResult = JSON.parseArray(JSON.toJSONString(modelDataResults));
         }
         result.put("data", jsonResult);
         return result;
@@ -298,4 +365,5 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
         modelDataResult.setDeviceInformationId(modelReportFormResult.getDeviceInformationId());
         modelDataResult.setCreateTime(modelReportFormResult.getCreateTime());
     }
+
 }