| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | |
| | | @Override |
| | | public ProductionProgressDto productionProgress() { |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | |
| | | LocalDateTime startOfMonth = now |
| | | .with(TemporalAdjusters.firstDayOfMonth()) |
| | | .with(LocalTime.MIN); |
| | | |
| | | LocalDateTime endOfMonth = now |
| | | .with(TemporalAdjusters.lastDayOfMonth()) |
| | | .with(LocalTime.MAX); |
| | | |
| | | |
| | | ProductionProgressDto productionProgressDto = new ProductionProgressDto(); |
| | | List<ProductionProgressOrderDto> orderDetails = productionOrderMapper.selectProgressOrders( |
| | | LocalDateTime.now().minusMonths(1), LocalDateTime.now()); |
| | | List<ProductionProgressOrderDto> orderDetails = productionOrderMapper |
| | | .selectProgressOrders(startOfMonth, endOfMonth); |
| | | productionProgressDto.setCompletedOrderDetails(orderDetails); |
| | | long totalCount = orderDetails.size(); |
| | | long count = orderDetails.stream().filter( |
| | |
| | | BigDecimal::add)); |
| | | |
| | | |
| | | |
| | | Map<String, BigDecimal> expenseMap = expenseList.stream() |
| | | .collect(Collectors.toMap( |
| | | IncomeExpenseAnalysisDto::getDateStr, |
| | |
| | | @Override |
| | | public List<MapDto> orderCount() { |
| | | LocalDate now = LocalDate.now(); |
| | | DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | String currentStart = now.withDayOfMonth(1).atStartOfDay() |
| | | .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
| | | String currentEnd = now.atTime(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
| | | LocalDateTime startDateTime = now.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(); |
| | | LocalDateTime endDateTime = now.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX); |
| | | |
| | | LocalDate lastMonthDate = now.minusMonths(1); |
| | | String lastStart = lastMonthDate.withDayOfMonth(1).atStartOfDay() |
| | | .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
| | | String lastEnd = lastMonthDate.withDayOfMonth(lastMonthDate.lengthOfMonth()).atTime(LocalTime.MAX) |
| | | .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
| | | String currentStart = startDateTime.format(dateTimeFormatter); |
| | | String currentEnd = endDateTime.format(dateTimeFormatter); |
| | | |
| | | String lastStart = startDateTime.minusMonths(1).format(dateTimeFormatter); |
| | | String lastEnd = endDateTime.format(dateTimeFormatter); |
| | | |
| | | int currentCreated = productionOrderMapper.countCreated(currentStart, currentEnd); |
| | | int lastCreated = productionOrderMapper.countCreated(lastStart, lastEnd); |
| | |
| | | LocalDate endDate = range[1]; |
| | | |
| | | String startStr = startDate.toString(); |
| | | String endStr = endDate.toString(); |
| | | String endStr = endDate.plusDays(1).toString(); |
| | | |
| | | List<QualityInspect> list = qualityInspectMapper.selectList( |
| | | new LambdaQueryWrapper<QualityInspect>() |
| | | .eq(QualityInspect::getInspectType, inspectType) |
| | | .eq(QualityInspect::getInspectState, 1) |
| | | .ge(QualityInspect::getCheckTime, startStr) |
| | | .le(QualityInspect::getCheckTime, endStr)); |
| | | .lt(QualityInspect::getCheckTime, endStr)); |
| | | |
| | | return buildQualifiedAnalysis(list); |
| | | } |
| | | |
| | | private LocalDate[] calcDateRange(Integer type) { |
| | | LocalDate today = LocalDate.now(); |
| | | int rangeType = (type == null) ? 1 : type; |
| | | LocalDate anchor = LocalDate.now(); |
| | | LocalDate startDate; |
| | | LocalDate endDate; |
| | | |
| | | switch (type) { |
| | | case 1: // 周 |
| | | startDate = today.with(DayOfWeek.MONDAY); |
| | | endDate = today.with(DayOfWeek.SUNDAY); |
| | | switch (rangeType) { |
| | | case 2: // 近一月 |
| | | startDate = anchor.minusMonths(1).plusDays(1); |
| | | break; |
| | | case 2: // 月 |
| | | startDate = today.with(TemporalAdjusters.firstDayOfMonth()); |
| | | endDate = today.with(TemporalAdjusters.lastDayOfMonth()); |
| | | case 3: // 近一季度 |
| | | startDate = anchor.minusMonths(3).plusDays(1); |
| | | break; |
| | | case 3: // 季度 |
| | | int currentMonth = today.getMonthValue(); |
| | | int startMonth = ((currentMonth - 1) / 3) * 3 + 1; |
| | | startDate = LocalDate.of(today.getYear(), startMonth, 1); |
| | | endDate = LocalDate.of(today.getYear(), startMonth + 2, 1) |
| | | .with(TemporalAdjusters.lastDayOfMonth()); |
| | | break; |
| | | case 1: // 近一周 |
| | | default: |
| | | startDate = today.with(DayOfWeek.MONDAY); |
| | | endDate = today.with(DayOfWeek.SUNDAY); |
| | | startDate = anchor.minusDays(6); |
| | | break; |
| | | } |
| | | |
| | | return new LocalDate[]{startDate, endDate}; |
| | | return new LocalDate[]{startDate, anchor}; |
| | | } |
| | | |
| | | private QualityQualifiedAnalysisDto buildQualifiedAnalysis(List<QualityInspect> list) { |