wuheng 1 anno fa
parent
commit
e429244b8b

+ 46 - 0
dao/src/main/java/com/koobietech/eas/dao/Pojo/EasArcTlsAttendancePojo.java

@@ -0,0 +1,46 @@
+package com.koobietech.eas.dao.Pojo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author lc
+ */
+@Data
+public class EasArcTlsAttendancePojo implements Serializable {
+
+    @Excel(name = "签到日期")
+    private Date checkinDate;
+
+    @Excel(name = "学员档案号")
+    private String studentNumber;
+
+    //a表示正常出勤, b表示迟到、早退, c表示旷课, d表示请假, e表示无效
+    @Excel(name = "上午出勤状态")
+    private String morning;
+
+    //a表示正常出勤,   b表示迟到、早退, c 表示旷课, d 表示请假, e表示无效"
+    @Excel(name = "下午出勤状态")
+    private String afternoon;
+
+    @Excel(name = "学员姓名")
+    private String studentName;
+
+    @Excel(name = "类别" )
+    private Integer category;
+
+    @Excel(name = "科目" )
+    private Integer subject;
+
+    @Excel(name = "创建时间" )
+    private Date createTime;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 61 - 51
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsAttendanceServiceImpl.java

@@ -1,20 +1,32 @@
 package com.koobietech.eas.service.impl;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.hutool.core.bean.BeanUtil;
+import com.koobietech.eas.common.constant.FileType;
 import com.koobietech.eas.common.exception.EasException;
 import com.koobietech.eas.common.result.PageData;
-import com.koobietech.eas.mbg.mapper.EasArcTlsAttendanceMapper;
-import com.koobietech.eas.mbg.mapper.EasEduCltRelationMapper;
-import com.koobietech.eas.mbg.mapper.EasEduScheduleMapper;
-import com.koobietech.eas.mbg.mapper.EasSysStudentMapper;
+import com.koobietech.eas.common.utils.SecurityUtils;
+import com.koobietech.eas.dao.Pojo.EasArcTlsAttendancePojo;
+import com.koobietech.eas.dao.Pojo.EasArcTlsScoresPojo;
+import com.koobietech.eas.dao.dto.ArchivesDto;
+import com.koobietech.eas.mbg.mapper.*;
 import com.koobietech.eas.mbg.model.*;
 import com.koobietech.eas.service.EasArcTlsAttendanceService;
+import com.koobietech.eas.service.EasArchivesFilesService;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.ZoneOffset;
 import java.util.*;
 import java.util.stream.Collectors;
 
+/**
+ * @author lc
+ */
 @Service
 public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceService {
 
@@ -30,6 +42,11 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
     @Resource
     private EasEduScheduleMapper easEduScheduleMapper;
 
+    @Resource
+    EasArchivesFilesService easArchivesFilesService;
+
+    @Resource
+    EasArcArchivesMapper arcArchivesMapper;
 
     @Override
     public PageData query(EasArcTlsAttendance attendance) {
@@ -84,8 +101,9 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
         //签到日期前端会自己传 所以就不需要再写一次了
         attendance.setCreateTime(new Date());
         attendance.setModifyTime(new Date());
-        return easArcTlsAttendanceMapper.insert(attendance) == 1;
-
+        int insert = easArcTlsAttendanceMapper.insert(attendance);
+        saveStudentAttendanceArchive(attendance);
+        return insert == 1;
     }
 
     @Override
@@ -107,7 +125,9 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
     @Override
     public Boolean update(EasArcTlsAttendance attendance) {
         attendance.setModifyTime(new Date());
-        return easArcTlsAttendanceMapper.updateByPrimaryKey(attendance) == 1;
+        int i = easArcTlsAttendanceMapper.updateByPrimaryKey(attendance);
+        saveStudentAttendanceArchive(attendance);
+        return i == 1;
     }
 
     @Override
@@ -159,51 +179,41 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
                 .collect(Collectors.toList());
     }
 
+    public boolean saveStudentAttendanceArchive(EasArcTlsAttendance attendance){
+        EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
+        EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
+        criteria.andStudentNumberEqualTo(attendance.getStudentNumber());
+        //criteria.andScheduleIdEqualTo(attendance.getScheduleId());
+        List<EasArcTlsAttendance> easArcTlsAttendances = easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
+        ArchivesDto archivesDto = saveEasArcTlsAttendanceToExcel(easArcTlsAttendances, attendance.getStudentNumber());
+        EasArcArchives easArcArchives = new EasArcArchives();
+        easArcArchives.setStudentNumber(attendance.getStudentNumber());
+        easArcArchives.setArchiveNumber(archivesDto.getArchiveCode());
+        easArcArchives.setFilePath(archivesDto.getPath());
+        easArcArchives.setCreateTime(new Date());
+        easArcArchives.setCreateUid( SecurityUtils.getLoginUid().intValue() );
+        easArcArchives.setModifyTime(new Date());
+        easArcArchives.setArctype(FileType.XLSX.name());
+        easArcArchives.setManagerId( SecurityUtils.getLoginUid().intValue() );
+        easArcArchives.setValidityTime( new Date(LocalDate.now().plusMonths(20)
+                .atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli()) );
+        int insert = arcArchivesMapper.insert(easArcArchives);
+        return insert == 1;
+    }
 
-//    @Override
-//    public List<EasArcTlsAttendance> getStudentList(Long scheduleId) {
-//        // 创建查询条件,根据课表ID查找EasEduSchedule表,获取班级ID
-//        EasEduSchedule easEduSchedule = easEduScheduleMapper.selectByPrimaryKey(scheduleId);
-//        if (Objects.nonNull(easEduSchedule)) {
-//            Long classId = Long.valueOf(easEduSchedule.getClassId()); // 将班级ID赋值给classId变量
-//            System.out.println("!!!!查出来的对应scheduleId的classId = " + classId);
-//
-//            // 创建查询条件,根据班级ID查找EasEduCltRelation表,获取学生ID
-//            EasEduCltRelationExample easEduCltRelationExample = new EasEduCltRelationExample();
-//            EasEduCltRelationExample.Criteria criteriaFindStuId = easEduCltRelationExample.createCriteria();
-//            criteriaFindStuId.andClassIdEqualTo(classId); // 设置班级ID作为查询条件
-//
-//            // 查询EasEduCltRelation表,获取符合条件的学生ID列表
-//            List<EasEduCltRelation> easEduCltRelations = easEduCltRelationMapper.selectByExample(easEduCltRelationExample);
-//            List<Long> studentIds = new ArrayList<>();
-//            for (EasEduCltRelation easEduCltRelation : easEduCltRelations) {
-//                studentIds.add(Long.valueOf(easEduCltRelation.getStudentId())); // 将学生ID添加到列表中
-//            }
-//
-//            // 根据学生ID列表查询EasSysStudent表,获取学生信息
-//            EasSysStudentExample easSysStudentExample = new EasSysStudentExample();
-//            EasSysStudentExample.Criteria criteriaFindStu = easSysStudentExample.createCriteria();
-//            if (!studentIds.isEmpty()) {
-//                criteriaFindStu.andIdIn(studentIds); // 设置学生ID列表作为查询条件
-//            }
-//            List<EasSysStudent> easSysStudents = easSysStudentMapper.selectByExample(easSysStudentExample);
-//
-//            // 封装查询结果到PageData对象并返回
-//            PageData ret = new PageData();
-//            ret.setData(easSysStudents);
-//            List<EasArcTlsAttendance> list = new ArrayList<>();
-//            easSysStudents.forEach(easSysStudent -> {
-//                EasArcTlsAttendance easArcTlsAttendance = new EasArcTlsAttendance();
-//                easArcTlsAttendance.setStudentNumber(easSysStudent.getStudentNumber());
-//                easArcTlsAttendance.setStudentName(easSysStudent.getStudentName());
-//                list.add(easArcTlsAttendance);
-//            });
-//            return list;
-//        } else {
-//            throw new EasException("未查询到对应课表,请检查数据库", 9595); // 如果查询不到课表,则返回空列表
-//        }
-//    }
-
+    private ArchivesDto saveEasArcTlsAttendanceToExcel(List<EasArcTlsAttendance> easArcTlsAttendances, String studentNumber) {
+        List<EasArcTlsAttendancePojo> arcTlsAttendanceList = new ArrayList<>();
+        for (EasArcTlsAttendance tlsAttendance: easArcTlsAttendances) {
+            EasArcTlsAttendancePojo easArcTlsAttendancePojo = new EasArcTlsAttendancePojo();
+            BeanUtil.copyProperties(tlsAttendance, easArcTlsAttendancePojo);
+            arcTlsAttendanceList.add(easArcTlsAttendancePojo);
+        }
+        ExportParams params   = new ExportParams("学员签到表", "签到");
+        Workbook workbook = ExcelExportUtil.exportExcel(params,
+                EasArcTlsScoresPojo.class, arcTlsAttendanceList);
+        ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
+        return archivesDto;
+    }
 
 }
 

+ 3 - 1
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java

@@ -79,7 +79,8 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
 
     @Override
     public int updateStudentScore(EasArcTlsScores easArcTlsScores) {
-        return easArcTlsScoresMapper.updateByPrimaryKey(easArcTlsScores);
+        easArcTlsScoresMapper.updateByPrimaryKey(easArcTlsScores);
+        return saveStudentScoreArchive(easArcTlsScores) ? 1: 0;
     }
 
     @Override
@@ -145,6 +146,7 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
                 EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
                 BeanUtil.copyProperties(easArcTlsScoresPojo, easArcTlsScores);
                 easArcTlsScoresMapper.insert(easArcTlsScores);
+                saveStudentScoreArchive(easArcTlsScores);
             }
         } catch (FileNotFoundException e) {
             throw new EasException(e.getMessage());