From 31f3dcc7c566174cbdec4f41a9a96e58a1be9a4e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 17 十二月 2024 16:20:12 +0800
Subject: [PATCH] 统计2.0+首页2.0+检验下单型号过滤修改

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java |  107 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 56 insertions(+), 51 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java
index 907fc32..fe35e81 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java
@@ -39,13 +39,13 @@
 
     //姣忔棩涓氬姟缁熻
     @Override
-    public Map<String, Object> businessStatisticsByDay(String startTime,String endTime,String type) {
+    public Map<String, Object> businessStatisticsByDay(String startTime, String endTime, String type) {
         DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay();
         LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59);
-        LocalDateTime oldStart=start  ;
-        LocalDateTime oldEnd=end ;
-        switch (type){
+        LocalDateTime oldStart = start;
+        LocalDateTime oldEnd = end;
+        switch (type) {
             case "鍛�":
                 oldStart = start.minusDays(7);
                 oldEnd = end.minusDays(7);
@@ -101,23 +101,23 @@
         /*妫�娴嬭垂鐢�*/
         //浠婃棩妫�娴嬭垂鐢�
         QueryWrapper<CostStatisticsDto> costStatisticsDtoQueryWrappers = new QueryWrapper<>();
-        costStatisticsDtoQueryWrappers.between("create_time", start,end);
+        costStatisticsDtoQueryWrappers.between("create_time", start, end);
         IPage<CostStatisticsDto> page = new Page<>();
         page.setSize(-1);
         page.setCurrent(-1);
         IPage<CostStatisticsDto> iPage = insOrderMapper.selectCostStatistics(page, costStatisticsDtoQueryWrappers);
         BigDecimal price = BigDecimal.ZERO;
         for (CostStatisticsDto record : iPage.getRecords()) {
-            price.add(record.getPrice());
+            price = price.add(ObjectUtils.isNotEmpty(record.getPrice()) ? record.getPrice() : BigDecimal.ZERO);
         }
         map.put("PRICE", price);
         //鏄ㄦ棩妫�娴嬭垂鐢�
         QueryWrapper<CostStatisticsDto> costWrappers = new QueryWrapper<>();
-        costWrappers.between("create_time", oldStart,oldEnd);
+        costWrappers.between("create_time", oldStart, oldEnd);
         IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, costWrappers);
         BigDecimal priced = BigDecimal.ZERO;
         for (CostStatisticsDto record : dtoIPage.getRecords()) {
-            priced.add(record.getPrice());
+            priced = priced.add(ObjectUtils.isNotEmpty(record.getPrice()) ? record.getPrice() : BigDecimal.ZERO);
         }
         //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩
         BigDecimal priceRatio = (price.subtract(priced)).divide(priced.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ONE : priced, 2, BigDecimal.ROUND_HALF_UP);
@@ -127,13 +127,13 @@
         //浠婃棩妫�娴嬪伐鏃�
         Double cost = 0.0;
         for (CostStatisticsDto record : iPage.getRecords()) {
-            cost += record.getCost();
+            cost += ObjectUtils.isNotEmpty(record.getCost()) ? record.getCost() : 0.0;
         }
         map.put("COST", cost);
         //鏄ㄦ棩妫�娴嬪伐鏃�
         Double costed = 0.0;
         for (CostStatisticsDto record : dtoIPage.getRecords()) {
-            costed += record.getCost();
+            costed += ObjectUtils.isNotEmpty(record.getCost()) ? record.getCost() : 0.0;
         }
         //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩
         BigDecimal costRatio = new BigDecimal(cost - costed).divide(new BigDecimal(costed == 0 ? 1 : costed), 2, BigDecimal.ROUND_HALF_UP);
@@ -158,18 +158,26 @@
         //鑾峰彇杩戝崄鏃ョ殑妯潗鏍�
         LocalDate startDate = LocalDate.parse(startTime, format);
         LocalDate endDate = LocalDate.parse(endTime, format);
-        List<LocalDate> lastTenDays = new ArrayList<>();
+        List<String> lastTenDays = new ArrayList<>();
         List<Long> receTenDays = new ArrayList<>();
         List<Long> finTenDays = new ArrayList<>();
         while (!startDate.isAfter(endDate)) {
-            lastTenDays.add(startDate);
+            if (type.equals("骞�")){
+                lastTenDays.add(startDate.format(format).substring(0,7));
+            }else {
+                lastTenDays.add(startDate.format(format));
+            }
             receTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
                     .eq(InsOrder::getState, 1)
-                    .between(InsOrder::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59))));
+                    .between(InsOrder::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59))));
             finTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
                     .eq(InsOrder::getState, 4)
-                    .between(InsOrder::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59))));
-            startDate = startDate.plusDays(1);
+                    .between(InsOrder::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59))));
+            if (type.equals("骞�")) {
+                startDate = startDate.plusMonths(1);
+            }else {
+                startDate=startDate.plusDays(1);
+            }
         }
         map.put("DAYS", lastTenDays);
         map.put("RECETENDAYS", receTenDays);
@@ -179,12 +187,12 @@
 
     //妫�娴嬮」鐩粺璁�
     @Override
-    public Map<String, Object> testProductByDay(String startTime,String endTime,String type) {
+    public Map<String, Object> testProductByDay(String startTime, String endTime, String type) {
         DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay();
         LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59);
-        LocalDateTime oldStart=start  ;
-        LocalDateTime oldEnd=end ;
+        LocalDateTime oldStart = start;
+        LocalDateTime oldEnd = end;
         Map<String, Object> map = new HashMap<>();
         /*椤圭洰鎺ユ敹*/
         //浠婃棩椤圭洰鎺ユ敹閲�
@@ -230,7 +238,8 @@
         //浠婃棩瀹屾垚閲忎腑鐨勫悎鏍奸噺/浠婃棩瀹屾垚閲�
         Long accept = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                 .eq(InsProduct::getState, 1)
-                .eq(InsProduct::getInsResult, 1)
+                .isNotNull(InsProduct::getInsResult)
+                .ne(InsProduct::getInsResult, 0)
                 .between(InsProduct::getCreateTime, start, end));
         map.put("ACCEPT", accept);
         BigDecimal acceptRate = new BigDecimal(accept).divide(new BigDecimal(finishe == 0 ? 1 : finishe), 2, BigDecimal.ROUND_HALF_UP);
@@ -250,19 +259,27 @@
         //鑾峰彇杩戝崄鏃ョ殑妯潗鏍�
         LocalDate startDate = LocalDate.parse(startTime, format);
         LocalDate endDate = LocalDate.parse(endTime, format);
-        List<LocalDate> lastTenDays = new ArrayList<>();
+        List<String> lastTenDays = new ArrayList<>();
         List<Long> receTenDays = new ArrayList<>();
         List<Long> finTenDays = new ArrayList<>();
-        while (!startDate.isAfter(endDate))  {
-            lastTenDays.add(startDate);
+        while (!startDate.isAfter(endDate)) {
+            if (type.equals("骞�")){
+                lastTenDays.add(startDate.format(format).substring(0,7));
+            }else {
+                lastTenDays.add(startDate.format(format));
+            }
             receTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                     .eq(InsProduct::getState, 1)
-                    .between(InsProduct::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59))));
+                    .between(InsProduct::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59))));
             finTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                     .eq(InsProduct::getState, 1)
                     .isNotNull(InsProduct::getInsResult)
-                    .between(InsProduct::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59))));
-            startDate = startDate.plusDays(1);
+                    .between(InsProduct::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59))));
+            if (type.equals("骞�")) {
+                startDate = startDate.plusMonths(1);
+            }else {
+                startDate=startDate.plusDays(1);
+            }
         }
         map.put("DAYS", lastTenDays);
         map.put("RECETENDAYS", receTenDays);
@@ -350,31 +367,24 @@
 
     //棣栭〉-->鍚勭珯鐐圭殑宸ユ椂
     @Override
-    public Map<String, Double> manHourByStation(String startTime, String endTime) {
+    public String manHourByStation(String startTime, String endTime, String sonLaboratory) {
         DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay();
         LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59);
         //鏌ヨ杩欎釜鏃堕棿鍐呮墍鏈夌殑宸ユ椂
         List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                 .between(AuxiliaryOutputWorkingHours::getCreateTime, start, end));
-        //鏍规嵁妫�楠岄」鏌ュ嚭鏉ョ殑绔欑偣杩涜鍒嗙被
-        List<AuxiliaryOutputWorkingHoursDto> outputWorkingHoursDtos = auxiliaryOutputWorkingHours.stream().map(auxiliaryOutputWorkingHours1 -> {
-            AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto = new AuxiliaryOutputWorkingHoursDto();
-            BeanUtils.copyProperties(auxiliaryOutputWorkingHours1, auxiliaryOutputWorkingHoursDto);
-            InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId());
-            auxiliaryOutputWorkingHoursDto.setSonLaboratory(insProduct.getSonLaboratory());
-            return auxiliaryOutputWorkingHoursDto;
-        }).collect(Collectors.toList());
-        Map<String, Double> map = outputWorkingHoursDtos.stream()
-                .collect(Collectors.groupingBy(
-                        AuxiliaryOutputWorkingHoursDto::getSonLaboratory,
-                        Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime)));
-        return map;
+        double sum = auxiliaryOutputWorkingHours.stream()
+                .filter(auxiliaryOutputWorkingHours1 ->
+                        insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()).getSonLaboratory().equals(sonLaboratory)
+                ).mapToDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime).sum();
+        String num = String.format("%.2f", sum);
+        return num;
     }
 
     //棣栭〉-->鍚勭珯鐐瑰伐鏃舵瘡涓汉鎵�鍗犵櫨鍒嗘瘮
     @Override
-    public Map<String, Map<String, Double>> manHourByPerson(String startTime, String endTime) {
+    public Map<Object, Double> manHourByPerson(String startTime, String endTime, String sonLaboratory) {
         DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay();
         LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59);
@@ -382,19 +392,14 @@
         List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                 .between(AuxiliaryOutputWorkingHours::getCreateTime, start, end));
         //鏍规嵁妫�楠岄」鏌ュ嚭鏉ョ殑绔欑偣杩涜鍒嗙被
-        List<AuxiliaryOutputWorkingHoursDto> outputWorkingHoursDtos = auxiliaryOutputWorkingHours.stream().map(auxiliaryOutputWorkingHours1 -> {
-            AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto = new AuxiliaryOutputWorkingHoursDto();
-            BeanUtils.copyProperties(auxiliaryOutputWorkingHours1, auxiliaryOutputWorkingHoursDto);
-            InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId());
-            auxiliaryOutputWorkingHoursDto.setSonLaboratory(insProduct.getSonLaboratory());
-            return auxiliaryOutputWorkingHoursDto;
-        }).collect(Collectors.toList());
-        Map<String, Map<String, Double>> mapMap = outputWorkingHoursDtos.stream()
+        List<AuxiliaryOutputWorkingHours> outputWorkingHours = auxiliaryOutputWorkingHours.stream()
+                .filter(auxiliaryOutputWorkingHours1 ->
+                        insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()).getSonLaboratory().equals(sonLaboratory)
+                ).collect(Collectors.toList());
+        Map<Object, Double> mapMap = outputWorkingHours.stream()
                 .collect(Collectors.groupingBy(
-                        AuxiliaryOutputWorkingHoursDto::getSonLaboratory,
-                        Collectors.groupingBy(
                                 t -> userMapper.selectById(t.getCheck()).getName(),
-                                Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime))));
+                                Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime)));
 
         return mapMap;
     }

--
Gitblit v1.9.3