OriginalDataServiceImpl.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.chuanghai.attendance.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.chuanghai.attendance.dao.OriginalDataDao;
  5. import com.chuanghai.attendance.entity.OriginalData;
  6. import com.chuanghai.attendance.service.OriginalDataService;
  7. import com.chuanghai.attendance.utils.excel.ExcelImportXLSXUtil;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.util.StringUtils;
  10. import org.springframework.web.multipart.MultipartFile;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. /**
  14. * @Author: binguo
  15. * @Date: 2022/9/20 星期二 17:16
  16. * @Description: com.chuanghai.attendance.service.impl
  17. * @Version: 1.0
  18. */
  19. @Service("originalDataService")
  20. public class OriginalDataServiceImpl extends ServiceImpl<OriginalDataDao, OriginalData> implements OriginalDataService {
  21. /**
  22. * 导入钉钉考勤原始数据信息
  23. *
  24. * @param file
  25. * @throws Exception
  26. */
  27. public Boolean importOriginalDataExcel(MultipartFile file) throws Exception {
  28. Boolean aBoolean = removeOriginalDataIds();
  29. List<OriginalData> originalDataList = new ArrayList<>();
  30. if (aBoolean) {
  31. List<String[]> list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "原始记录", 20);
  32. int count = 0;
  33. for (String[] strings : list) {
  34. count++;
  35. if (count < 4) {
  36. continue;
  37. }
  38. //System.out.println(strings[9]);
  39. OriginalData originalData = new OriginalData();
  40. if (StringUtils.hasText(strings[9]) && !strings[9].contains("打卡无效")) {
  41. originalData.setWorkName(strings[0]);
  42. originalData.setWorkNum(strings[3]);
  43. originalData.setUserId(strings[5]);
  44. originalData.setDateOfAttendance(strings[6]);
  45. //originalData.setTimeOfAttendance(strings[7]);
  46. originalData.setClockTime(strings[8]);
  47. originalData.setClockAddress(strings[10]);
  48. originalData.setClockEquipment(strings[15]);
  49. originalDataList.add(originalData);
  50. }
  51. }
  52. }
  53. return this.saveBatch(originalDataList, originalDataList.size());
  54. }
  55. @Override
  56. public List<OriginalData> queryByUserId(String userId, String workNum) {
  57. QueryWrapper<OriginalData> wrapper = new QueryWrapper<>();
  58. wrapper.eq("user_id", userId);
  59. List<OriginalData> list = this.list(wrapper);
  60. if (list.size() == 0) {
  61. QueryWrapper<OriginalData> wrapper1 = new QueryWrapper<>();
  62. wrapper1.eq("work_num", workNum);
  63. list = this.list(wrapper1);
  64. }
  65. if (list.size() == 0) {
  66. // throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, userId + "userId workNum不存在");
  67. }
  68. return list;
  69. }
  70. @Override
  71. public List<OriginalData> queryByTimeAndUserId(String date, String userId, String workNum) {
  72. QueryWrapper<OriginalData> wrapper = new QueryWrapper<>();
  73. wrapper.eq("date_of_attendance", date)
  74. .eq("user_id", userId);
  75. List<OriginalData> list = this.list(wrapper);
  76. if (list.size() == 0) {
  77. QueryWrapper<OriginalData> wrapper1 = new QueryWrapper<>();
  78. wrapper1.eq("date_of_attendance", date)
  79. .eq("work_num", workNum);
  80. list = this.list(wrapper1);
  81. }
  82. return list;
  83. }
  84. public Boolean removeOriginalDataIds() {
  85. List<OriginalData> list = this.list();
  86. if (list.size() == 0) {
  87. return Boolean.TRUE;
  88. }
  89. List<Long> originalDataIds = new ArrayList<>();
  90. list.forEach(originalData -> {
  91. originalDataIds.add(originalData.getId());
  92. });
  93. return this.removeByIds(originalDataIds);
  94. }
  95. }