| | |
| | | return records; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> progressTotal(LaborIssue req) { |
| | | StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate()); |
| | | req.setStartDate(startAndEndDateDto.getStartDate()); |
| | | req.setEndDate(startAndEndDateDto.getEndDate()); |
| | | List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("total", 0); // 发放总数量 |
| | | // 领取数量 |
| | | map.put("adopted", 0); |
| | | // 未领取数量 |
| | | map.put("notAdopted", 0); |
| | | // 领取完成率 |
| | | map.put("adoptedPercent", 0); |
| | | if(!CollectionUtils.isEmpty(laborIssueIPage)){ |
| | | long sum = laborIssueIPage.stream().mapToLong(LaborIssue::getNum).sum(); |
| | | map.put("total", sum); |
| | | long sum1 = laborIssueIPage |
| | | .stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() != null) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | map.put("adopted", sum1); |
| | | map.put("notAdopted", sum - sum1); |
| | | map.put("adoptedPercent", sum1 * 100.0 / sum); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> progressPercent(LaborIssue req) { |
| | | StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate()); |
| | | req.setStartDate(startAndEndDateDto.getStartDate()); |
| | | req.setEndDate(startAndEndDateDto.getEndDate()); |
| | | List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | // 领取数量 |
| | | map.put("adopted", 0); |
| | | // 未领取数量 |
| | | map.put("notAdopted", 0); |
| | | if(!CollectionUtils.isEmpty(laborIssueIPage)){ |
| | | long sum = laborIssueIPage.stream().mapToLong(LaborIssue::getNum).sum(); |
| | | long sum1 = laborIssueIPage |
| | | .stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() != null) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | map.put("adopted", sum1); |
| | | map.put("notAdopted", sum - sum1); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> progressDistribution(LaborIssue req) { |
| | | StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate()); |
| | | req.setStartDate(startAndEndDateDto.getStartDate()); |
| | | req.setEndDate(startAndEndDateDto.getEndDate()); |
| | | List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if(!CollectionUtils.isEmpty(laborIssueIPage)){ |
| | | // 根据发放日期,领用日期计算及时已领取,及时未领取,超时已领取,超时未领取数据 |
| | | // 及时已领取 |
| | | List<List<Long>> list = new ArrayList<>(); |
| | | List<Long> sumList = new ArrayList<>(); |
| | | long sum = laborIssueIPage.stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() != null && laborIssue.getAdoptedDate().getTime() <= laborIssue.getIssueDate().getTime()) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | // 及时未领取 |
| | | long sum1 = laborIssueIPage.stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() == null && laborIssue.getIssueDate().getTime() <= new Date().getTime()) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | sumList.add(sum); |
| | | sumList.add(sum1); |
| | | list.add(sumList); |
| | | List<Long> sumList1 = new ArrayList<>(); |
| | | // 超时已领取 |
| | | long sum2 = laborIssueIPage.stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() != null && laborIssue.getAdoptedDate().getTime() > laborIssue.getIssueDate().getTime()) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | // 超时未领取 |
| | | long sum3 = laborIssueIPage.stream() |
| | | .filter(laborIssue -> laborIssue.getAdoptedDate() == null && laborIssue.getIssueDate().getTime() > new Date().getTime()) |
| | | .mapToLong(LaborIssue::getNum) |
| | | .sum(); |
| | | sumList1.add(sum2); |
| | | sumList1.add(sum3); |
| | | list.add(sumList1); |
| | | map.put("series", list); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | public StartAndEndDateDto getStartAndEndDateDto(Integer season,Date payDate){ |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | StartAndEndDateDto startAndEndDateDto = new StartAndEndDateDto(); |