From e776dcaa5aa2416634644c2c7ac333ee95738b95 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期一, 17 三月 2025 15:57:31 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/tx-lims-after

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java |   76 ++++++++++++++++++++++++++++---------
 1 files changed, 57 insertions(+), 19 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 fe35e81..00943f6 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
@@ -6,16 +6,16 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.common.GetLook;
-import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
 import com.yuanchu.mom.dto.CostStatisticsDto;
+import com.yuanchu.mom.dto.InsOrderUserDto;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
 import com.yuanchu.mom.service.ReportService;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -36,6 +36,8 @@
     private RoleMapper roleMapper;
     private InsSampleUserMapper insSampleUserMapper;
     private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
+    private InsOrderStateMapper insOrderStateMapper;
+    private InsOrderUserMapper insOrderUserMapper;
 
     //姣忔棩涓氬姟缁熻
     @Override
@@ -162,21 +164,21 @@
         List<Long> receTenDays = new ArrayList<>();
         List<Long> finTenDays = new ArrayList<>();
         while (!startDate.isAfter(endDate)) {
-            if (type.equals("骞�")){
-                lastTenDays.add(startDate.format(format).substring(0,7));
-            }else {
+            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.plusMonths(1).minusDays(1).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))));
+                    .between(InsOrder::getCreateTime, startDate.atStartOfDay(), startDate.plusMonths(1).minusDays(1).atTime(23, 59, 59))));
             if (type.equals("骞�")) {
                 startDate = startDate.plusMonths(1);
-            }else {
-                startDate=startDate.plusDays(1);
+            } else {
+                startDate = startDate.plusDays(1);
             }
         }
         map.put("DAYS", lastTenDays);
@@ -194,6 +196,20 @@
         LocalDateTime oldStart = start;
         LocalDateTime oldEnd = end;
         Map<String, Object> map = new HashMap<>();
+        switch (type) {
+            case "鍛�":
+                oldStart = start.minusDays(7);
+                oldEnd = end.minusDays(7);
+                break;
+            case "鏈�":
+                oldStart = start.minusMonths(1);
+                oldEnd = end.minusMonths(1);
+                break;
+            case "骞�":
+                oldStart = start.minusYears(1);
+                oldEnd = end.minusYears(1);
+                break;
+        }
         /*椤圭洰鎺ユ敹*/
         //浠婃棩椤圭洰鎺ユ敹閲�
         Long receive = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
@@ -263,22 +279,22 @@
         List<Long> receTenDays = new ArrayList<>();
         List<Long> finTenDays = new ArrayList<>();
         while (!startDate.isAfter(endDate)) {
-            if (type.equals("骞�")){
-                lastTenDays.add(startDate.format(format).substring(0,7));
-            }else {
+            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.plusMonths(1).minusDays(1).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))));
+                    .between(InsProduct::getCreateTime, startDate.atStartOfDay(), startDate.plusMonths(1).minusDays(1).atTime(23, 59, 59))));
             if (type.equals("骞�")) {
                 startDate = startDate.plusMonths(1);
-            }else {
-                startDate=startDate.plusDays(1);
+            } else {
+                startDate = startDate.plusDays(1);
             }
         }
         map.put("DAYS", lastTenDays);
@@ -398,9 +414,31 @@
                 ).collect(Collectors.toList());
         Map<Object, Double> mapMap = outputWorkingHours.stream()
                 .collect(Collectors.groupingBy(
-                                t -> userMapper.selectById(t.getCheck()).getName(),
-                                Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime)));
-
+                        t -> userMapper.selectById(t.getCheck()).getName(),
+                        Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime)));
         return mapMap;
     }
+
+    @Override
+    public Map<String, IPage<InsOrderUserDto>> timeByStation(String startTime, String endTime, Page page, 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);
+        Map<String, IPage<InsOrderUserDto>> map = new HashMap<>();
+        //鏌ヨ杩欎釜鏃堕棿鍐呮墍鏈夋楠屼换鍔�
+        if (ObjectUtils.isNotEmpty(sonLaboratory)) {
+            IPage<InsOrderUserDto> insOrderUserDtoIPage = insOrderUserMapper.selectInsOrderUserDto(start, end, sonLaboratory, page);
+            map.put(sonLaboratory, insOrderUserDtoIPage);
+        }else {
+            List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
+                    .between(InsOrderState::getCreateTime, start, end));
+            Map<String, List<InsOrderState>> listMap = insOrderStates.stream().collect(Collectors.groupingBy(InsOrderState::getLaboratory));
+            for (Map.Entry<String, List<InsOrderState>> entry : listMap.entrySet()) {
+                List<Integer> ids = entry.getValue().stream().map(InsOrderState::getId).collect(Collectors.toList());
+                IPage<InsOrderUserDto> insOrderUserDtoIPage = insOrderUserMapper.selectInsOrderUserDto2(ids, new Page(1,9));
+                map.put(entry.getKey(), insOrderUserDtoIPage);
+            }
+        }
+        return map;
+    }
 }

--
Gitblit v1.9.3