From cf4f8c022412536ee272024d132a3c2a9b9f210b Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 31 五月 2024 17:30:21 +0800
Subject: [PATCH] 完善工时统计的原始工时
---
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 330 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml | 2
2 files changed, 322 insertions(+), 10 deletions(-)
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
index d1b5aa5..e042b0c 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
@@ -10,6 +10,7 @@
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import com.yuanchu.mom.pojo.Power;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
@@ -17,6 +18,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,10 +45,13 @@
@Resource
AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
+ @Resource
+ AuxiliaryCorrectionHoursMapper auxiliaryCorrectionHoursMapper;
+
@Override
public Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto) {
Map<String, Object> map = new HashMap<>();
- List<Integer> ids = null;
+ List<Integer> ids = new ArrayList<>();
map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
//鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOriginalHours");
@@ -66,26 +71,333 @@
//鏌ヨ缁勯暱涓嬬殑缁勫憳
List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
if (ObjectUtils.isNotEmpty(users)) {
- ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+ ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
}
+ }
+ String departLims = auxiliaryOriginalHoursLookDto.getDepartLims();
+ auxiliaryOriginalHoursLookDto.setDepartLims(null);
+ String name = auxiliaryOriginalHoursLookDto.getName();
+ auxiliaryOriginalHoursLookDto.setName(null);
+ if (ObjectUtils.isNotEmpty(departLims)) {
+ //鍏堟ā绯婃煡璇㈠嚭鏉d
+ List<Integer> ides = auxiliaryCorrectionHoursMapper.selDepartLimsByName(departLims);
+ for (Integer ide : ides) {
+ List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery()
+ .like(User::getDepartLimsId, ide)
+ .eq(User::getState, 1));
+ if (ObjectUtils.isNotEmpty(users)) {
+ ides.clear();
+ ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
+ }
+ }
+ }
+ if (ObjectUtils.isNotEmpty(name)) {
+ ids.clear();
+ ids.add(userMapper.selectOne(Wrappers.<User>lambdaQuery().like(User::getName, name)).getId());
}
IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>();
originalHoursDtoIPage.setSize(page.getSize());
originalHoursDtoIPage.setCurrent(page.getCurrent());
- List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = null;
+ List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<>();
//浜ч噺宸ユ椂
- List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getStartTime(), auxiliaryOriginalHoursLookDto.getEndTime(), auxiliaryOriginalHoursLookDto.getUserId(), auxiliaryOriginalHoursLookDto.getDepartId(), ids);
- Map<Object, Map<Object, Double>> collect = maps.stream().collect(
- Collectors.groupingBy(objmap -> objmap.get("name"),
- Collectors.groupingBy(objmap -> objmap.get("month"),
- Collectors.summingDouble(objmap -> Double.parseDouble(objmap.get("output_work_time").toString())))));
+ List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ if (ObjectUtils.isNotEmpty(maps)) {
+ for (Map<String, Object> objectMap : maps) {
+ auxiliaryOriginalHoursDtos.add(getData(objectMap, "浜ч噺宸ユ椂"));
+ }
+ }
//杈呭姪宸ユ椂
- //杈呭姪宸ユ椂
+ List<Map<String, Object>> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ if (ObjectUtils.isNotEmpty(maps1)) {
+ for (Map<String, Object> objectMap : maps1) {
+ auxiliaryOriginalHoursDtos.add(getData(objectMap, "杈呭姪宸ユ椂"));
+ }
+ }
//鍔犵彮宸ユ椂
//鎬诲伐鏃�
+ List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ if (ObjectUtils.isNotEmpty(maps2)) {
+ //浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖
+ for (Map<String, Object> objectMap : maps2) {
+ auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
+ }
+ }
+ //濡傛灉浜ч噺宸ユ椂涓虹┖
+ else if (ObjectUtils.isEmpty(maps)) {
+ for (Map<String, Object> objectMap : maps1) {
+ auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
+ }
+ } else if (ObjectUtils.isEmpty(maps1)) {
+ for (Map<String, Object> objectMap : maps) {
+ auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
+ }
+ }
originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
map.put("body", originalHoursDtoIPage);
return map;
}
+
+ private AuxiliaryOriginalHoursDto getData(Map<String, Object> objectMap, String type) {
+ AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
+ auxiliaryOriginalHoursDto.setName(objectMap.get("name").toString());//濮撳悕
+ auxiliaryOriginalHoursDto.setType(type);
+ auxiliaryOriginalHoursDto.setMonth(objectMap.get("month").toString().substring(0, 7));//鏈堜唤
+ //鏌ヨ杩欎釜浜鸿繖涓湀鏄惁鏈変慨姝g殑浜ч噺宸ユ椂
+ AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryCorrectionHoursMapper.selectOne(Wrappers.<AuxiliaryCorrectionHours>lambdaQuery()
+ .eq(AuxiliaryCorrectionHours::getNameUser, userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryOriginalHoursDto.getName())).getId())
+ .eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType())
+ .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth()));
+ switch (objectMap.get("month").toString().substring(8, 10)) {
+ case "01":
+ auxiliaryOriginalHoursDto.setOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getOneHours().compareTo(auxiliaryOriginalHoursDto.getOneHours()) != 0) {
+ auxiliaryOriginalHoursDto.setOne(1);
+ }
+ }
+ break;
+ case "02":
+ auxiliaryOriginalHoursDto.setTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwoHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwo(1);
+ }
+ }
+ break;
+ case "03":
+ auxiliaryOriginalHoursDto.setThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getThreeHours().compareTo(auxiliaryOriginalHoursDto.getThreeHours()) != 0) {
+ auxiliaryOriginalHoursDto.setThree(1);
+ }
+ }
+ break;
+ case "04":
+ auxiliaryOriginalHoursDto.setFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getFourHours().compareTo(auxiliaryOriginalHoursDto.getFourHours()) != 0) {
+ auxiliaryOriginalHoursDto.setFour(1);
+ }
+ }
+ break;
+ case "05":
+ auxiliaryOriginalHoursDto.setFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getFiveHours().compareTo(auxiliaryOriginalHoursDto.getFiveHours()) != 0) {
+ auxiliaryOriginalHoursDto.setFive(1);
+ }
+ }
+ break;
+ case "06":
+ auxiliaryOriginalHoursDto.setSixHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getSixHours().compareTo(auxiliaryOriginalHoursDto.getSixHours()) != 0) {
+ auxiliaryOriginalHoursDto.setSix(1);
+ }
+ }
+ break;
+ case "07":
+ auxiliaryOriginalHoursDto.setSevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getSevenHours().compareTo(auxiliaryOriginalHoursDto.getSevenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setSeven(1);
+ }
+ }
+ break;
+ case "08":
+ auxiliaryOriginalHoursDto.setEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getEightHours().compareTo(auxiliaryOriginalHoursDto.getEightHours()) != 0) {
+ auxiliaryOriginalHoursDto.setEight(1);
+ }
+ }
+ break;
+ case "09":
+ auxiliaryOriginalHoursDto.setNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getNineHours().compareTo(auxiliaryOriginalHoursDto.getNineHours()) != 0) {
+ auxiliaryOriginalHoursDto.setNine(1);
+ }
+ }
+ break;
+ case "10":
+ auxiliaryOriginalHoursDto.setTenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTenHours().compareTo(auxiliaryOriginalHoursDto.getTenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTen(1);
+ }
+ }
+ break;
+ case "11":
+ auxiliaryOriginalHoursDto.setElevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getElevenHours().compareTo(auxiliaryOriginalHoursDto.getElevenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setEleven(1);
+ }
+ }
+ break;
+ case "12":
+ auxiliaryOriginalHoursDto.setTwelveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwelveHours().compareTo(auxiliaryOriginalHoursDto.getTwelveHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwelve(1);
+ }
+ }
+ break;
+ case "13":
+ auxiliaryOriginalHoursDto.setThirteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getThirteenHours().compareTo(auxiliaryOriginalHoursDto.getThirteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setThirteen(1);
+ }
+ }
+ break;
+ case "14":
+ auxiliaryOriginalHoursDto.setFourteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getFourteenHours().compareTo(auxiliaryOriginalHoursDto.getFourteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setFourteen(1);
+ }
+ }
+ break;
+ case "15":
+ auxiliaryOriginalHoursDto.setFifteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getFifteenHours().compareTo(auxiliaryOriginalHoursDto.getFifteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setFifteen(1);
+ }
+ }
+ break;
+ case "16":
+ auxiliaryOriginalHoursDto.setSixteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getSixteenHours().compareTo(auxiliaryOriginalHoursDto.getSixteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setSixteen(1);
+ }
+ }
+ break;
+ case "17":
+ auxiliaryOriginalHoursDto.setSeventeenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getSeventeenHours().compareTo(auxiliaryOriginalHoursDto.getSeventeenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setSeventeen(1);
+ }
+ }
+ break;
+ case "18":
+ auxiliaryOriginalHoursDto.setEighteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getEighteenHours().compareTo(auxiliaryOriginalHoursDto.getEighteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setEighteen(1);
+ }
+ }
+ break;
+ case "19":
+ auxiliaryOriginalHoursDto.setNineteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getNineteenHours().compareTo(auxiliaryOriginalHoursDto.getNineteenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setNineteen(1);
+ }
+ }
+ break;
+ case "20":
+ auxiliaryOriginalHoursDto.setTwentyHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyHours().compareTo(auxiliaryOriginalHoursDto.getTwentyHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwenty(1);
+ }
+ }
+ break;
+ case "21":
+ auxiliaryOriginalHoursDto.setTwentyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyOneHours().compareTo(auxiliaryOriginalHoursDto.getTwentyOneHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyOne(1);
+ }
+ }
+ break;
+ case "22":
+ auxiliaryOriginalHoursDto.setTwentyTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwentyTwoHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyTwo(1);
+ }
+ }
+ break;
+ case "23":
+ auxiliaryOriginalHoursDto.setTwentyThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyThreeHours().compareTo(auxiliaryOriginalHoursDto.getTwentyThreeHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyThree(1);
+ }
+ }
+ break;
+ case "24":
+ auxiliaryOriginalHoursDto.setTwentyFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyFourHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFourHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyFour(1);
+ }
+ }
+ break;
+ case "25":
+ auxiliaryOriginalHoursDto.setTwentyFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyFiveHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFiveHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyFive(1);
+ }
+ }
+ break;
+ case "26":
+ auxiliaryOriginalHoursDto.setTwentySixHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentySixHours().compareTo(auxiliaryOriginalHoursDto.getTwentySixHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentySix(1);
+ }
+ }
+ break;
+ case "27":
+ auxiliaryOriginalHoursDto.setTwentySevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentySevenHours().compareTo(auxiliaryOriginalHoursDto.getTwentySevenHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentySeven(1);
+ }
+ }
+ break;
+ case "28":
+ auxiliaryOriginalHoursDto.setTwentyEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyEightHours().compareTo(auxiliaryOriginalHoursDto.getTwentyEightHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyEight(1);
+ }
+ }
+ break;
+ case "29":
+ auxiliaryOriginalHoursDto.setTwentyNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getTwentyNineHours().compareTo(auxiliaryOriginalHoursDto.getTwentyNineHours()) != 0) {
+ auxiliaryOriginalHoursDto.setTwentyNine(1);
+ }
+ }
+ break;
+ case "30":
+ auxiliaryOriginalHoursDto.setThirtyHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getThirtyHours().compareTo(auxiliaryOriginalHoursDto.getThirtyHours()) != 0) {
+ auxiliaryOriginalHoursDto.setThirty(1);
+ }
+ }
+ break;
+ case "31":
+ auxiliaryOriginalHoursDto.setThirtyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+ if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+ if (auxiliaryCorrectionHours.getThirtyOneHours().compareTo(auxiliaryOriginalHoursDto.getThirtyOneHours()) != 0) {
+ auxiliaryOriginalHoursDto.setThirtyOne(1);
+ }
+ }
+ break;
+ }
+ return auxiliaryOriginalHoursDto;
+ }
}
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
index 8ca1bc2..4b1b9e4 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
@@ -27,7 +27,7 @@
order by month
) A
group by A.name, A.month) C
- LEFT JOIN
+ INNER JOIN
(select B.name,
B.month,
B.manHours
--
Gitblit v1.9.3