From 085e4b6b0a97c9a20a5b92a6d6f5756ba98144f3 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 19 七月 2024 17:41:39 +0800 Subject: [PATCH] 费用统计导出+工时展示 --- performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 100 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 78 insertions(+), 22 deletions(-) diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java index bc1fba2..131200a 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java @@ -4,6 +4,8 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -90,36 +92,68 @@ ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); } } - if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)){ + if (ids.size() == 0) { + ids = null; + } + if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59") - .ge("week", weeks[0]).le("week", weeks[1]), ids)); - }else if(ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)){ + .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59") + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); + } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids)); - }else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)){ + .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); + } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids)); - }else { - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids)); + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body", auxiliaryOutputWorkingHoursDtoIPage); + } else { + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body", auxiliaryOutputWorkingHoursDtoIPage); } return map; } //缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨�� @Override - public Map<String, Object> collectWorkingHours() { + public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) { + AuxiliaryOutputWorkingHours outputWorkingHours = new AuxiliaryOutputWorkingHours(); + AuxiliaryWorkingHoursDay workingHoursDay = new AuxiliaryWorkingHoursDay(); + List<Integer> ids = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){ + outputWorkingHours.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay()); + workingHoursDay.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay()); + } + if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName())){ + List<User> user = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, auxiliaryOutputWorkingHoursDto.getName())); + ids.addAll(user.stream().map(User::getId).collect(Collectors.toList())); + } + String dates = auxiliaryOutputWorkingHoursDto.getDateTime(); + auxiliaryOutputWorkingHoursDto.setDateTime(null); Map<String, Object> map = new HashMap<>(); Double sumOutputWorkTime = 0.0; Double sumApprovedWorkingHour = 0.0; - List<Integer> ids = null; + //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳 Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours"); User user = userMapper.selectById(map1.get("userId")); @@ -141,23 +175,45 @@ ids = users.stream().map(User::getId).distinct().collect(Collectors.toList()); } } - //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� - List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids); + List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = new ArrayList<>(); + List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = new ArrayList<>(); + if (ids.size() == 0) { + ids=null; + } + if (ObjectUtils.isNotEmpty(dates)) { + String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); + //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� + auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours) + .ge("date_time", split[0]) + .le("date_time", split[1] + " 23:59:59"),ids); + //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� + auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay) + .eq("state","宸叉壒鍑�") + .ge("date_time", split[0]) + .le("date_time", split[1] + " 23:59:59"),ids); + }else if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){ + //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� + auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours),ids); + //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� + auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay).eq("state","宸叉壒鍑�"),ids); + } + else { + auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids); + auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids); + } if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours)) { Map<String, Double> sumMap = new HashMap<>(); for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHour : auxiliaryOutputWorkingHours) { - if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup())) { - sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup(), auxiliaryOutputWorkingHour.getOutputWorkTime()); + if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample())) { + sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample(), auxiliaryOutputWorkingHour.getOutputWorkTime()); } } sumOutputWorkTime = sumMap.values().stream().mapToDouble(Double::doubleValue).sum(); } map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime); - //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� - List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids); if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) { for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { - sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getNonproductiveTime(); + sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getReviewerNonproductiveTime();//澶嶆牳宸ユ椂 } } map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour); @@ -169,7 +225,7 @@ public void exportWorkingHours(HttpServletResponse response) throws IOException { List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = new ArrayList<>(); List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = new ArrayList<>(); - List<Integer> ids = null; + List<Integer> ids = new ArrayList<>(); //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳 Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours"); User user = userMapper.selectById(map1.get("userId")); -- Gitblit v1.9.3