| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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"); |
| | |
| | | //查询组长下的组员 |
| | | 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)) { |
| | | //先模糊查询出来id |
| | | 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));//月份 |
| | | //查询这个人这个月是否有修正的产量工时 |
| | | 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; |
| | | } |
| | | } |