| | |
| | | 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; |
| | |
| | | private RoleMapper roleMapper; |
| | | private InsSampleUserMapper insSampleUserMapper; |
| | | private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; |
| | | private InsOrderStateMapper insOrderStateMapper; |
| | | private InsOrderUserMapper insOrderUserMapper; |
| | | |
| | | //每日业务统计 |
| | | @Override |
| | |
| | | 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() |
| | |
| | | .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); |
| | |
| | | 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() |
| | |
| | | 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() |
| | |
| | | .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); |
| | |
| | | ).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; |
| | | } |
| | | } |