package com.chuanghai.attendance.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chuanghai.attendance.dao.OriginalDataDao; import com.chuanghai.attendance.entity.OriginalData; import com.chuanghai.attendance.service.OriginalDataService; import com.chuanghai.attendance.utils.excel.ExcelImportXLSXUtil; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; /** * @Author: binguo * @Date: 2022/9/20 星期二 17:16 * @Description: com.chuanghai.attendance.service.impl * @Version: 1.0 */ @Service("originalDataService") public class OriginalDataServiceImpl extends ServiceImpl implements OriginalDataService { /** * 导入钉钉考勤原始数据信息 * * @param file * @throws Exception */ public Boolean importOriginalDataExcel(MultipartFile file) throws Exception { Boolean aBoolean = removeOriginalDataIds(); List originalDataList = new ArrayList<>(); if (aBoolean) { List list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "原始记录", 20); int count = 0; for (String[] strings : list) { count++; if (count < 4) { continue; } //System.out.println(strings[9]); OriginalData originalData = new OriginalData(); if (StringUtils.hasText(strings[9]) && !strings[9].contains("打卡无效")) { originalData.setWorkName(strings[0]); originalData.setWorkNum(strings[3]); originalData.setUserId(strings[5]); originalData.setDateOfAttendance(strings[6]); //originalData.setTimeOfAttendance(strings[7]); originalData.setClockTime(strings[8]); originalData.setClockAddress(strings[10]); originalData.setClockEquipment(strings[15]); originalDataList.add(originalData); } } } return this.saveBatch(originalDataList, originalDataList.size()); } @Override public List queryByUserId(String userId, String workNum) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("user_id", userId); List list = this.list(wrapper); if (list.size() == 0) { QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("work_num", workNum); list = this.list(wrapper1); } if (list.size() == 0) { // throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, userId + "userId workNum不存在"); } return list; } @Override public List queryByTimeAndUserId(String date, String userId, String workNum) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("date_of_attendance", date) .eq("user_id", userId); List list = this.list(wrapper); if (list.size() == 0) { QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("date_of_attendance", date) .eq("work_num", workNum); list = this.list(wrapper1); } return list; } public Boolean removeOriginalDataIds() { List list = this.list(); if (list.size() == 0) { return Boolean.TRUE; } List originalDataIds = new ArrayList<>(); list.forEach(originalData -> { originalDataIds.add(originalData.getId()); }); return this.removeByIds(originalDataIds); } }