From bcc80a6833abe9f24abdb978f7c7f01b664a574f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 18 二月 2025 14:48:45 +0800 Subject: [PATCH] 优化调整 --- 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