派生自 projectDept/qhighschool

yn147
2023-05-10 96286178ee1c257c130cb2ad964a781f36c4eee5
src/main/java/com/qxueyou/scc/admin/schoolRoll/impl/SchoolRollServiceImpl.java
@@ -1,24 +1,39 @@
package com.qxueyou.scc.admin.schoolRoll.impl;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.RandomUtil;
import com.qxueyou.scc.admin.classes.model.ClsClass;
import com.qxueyou.scc.admin.schoolRoll.ISchoolRollService;
import com.qxueyou.scc.base.model.ExcelExportParam;
import com.qxueyou.scc.base.model.Pager;
import com.qxueyou.scc.base.model.Result;
import com.qxueyou.scc.base.service.impl.CommonAppService;
import com.qxueyou.scc.base.util.ClientUtils;
import com.qxueyou.scc.base.util.CollectionUtils;
import com.qxueyou.scc.base.util.ExcelExportUtils;
import com.qxueyou.scc.base.util.TraceUtils;
import com.qxueyou.scc.teach.student.model.StuStudent;
import com.qxueyou.scc.user.model.UserRegistration;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Service
public class SchoolRollServiceImpl extends CommonAppService implements ISchoolRollService {
    @Autowired
    CommonAppService commonAppService;
    @Override
    public List<StuStudent> findSchoolRollList(Integer limit, Integer pageNum, String keyword, String status) {
        StringBuffer hql=new StringBuffer("from StuStudent where name like ? and status=? and deleteFlag is false");
        List<Object> args = CollectionUtils.newList(keyword + "%", status);
@@ -38,4 +53,124 @@
        return findCount(hql.toString(),args);
    }
    @Override
    public Result updateSchool(String [] studentIds, String classId) {
        for (String studentId:
                studentIds) {
            StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
            List<Object> args = CollectionUtils.newList(studentId);
            StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
            if(stuStudent!=null && classId!=null){
                StringBuffer ClaHql=new StringBuffer("from ClsClass where classId=? and deleteFlag is false");
                List<Object> claArgs = CollectionUtils.newList(classId);
                ClsClass cLaClass = findUnique(ClaHql.toString(), claArgs, ClsClass.class);
                cLaClass.setStudentCount(cLaClass.getStudentCount()+1);
                stuStudent.setClassId(classId);
                save(stuStudent);
            }else {
                return new Result(false,"班级不存在或学生不存在");
            }
        }
        return new Result(true,"分班成功");
    }
    @Override
    public void deriveStudentMessage() {
        StringBuffer hql=new StringBuffer("from StuStudent where status=? and deleteFlag is false");
        List<Object> args = CollectionUtils.newList("active");
        List<StuStudent> stuStudents = find(hql.toString(), args, StuStudent.class);
        ExcelExportUtils<StuStudent> ex = new ExcelExportUtils<StuStudent>();
        String[] headers = { "姓名", "性别" ,"手机号" ,"身份证"};
        List<StuStudent> dataset = new ArrayList<StuStudent>();
        for (StuStudent stuStudent:
                stuStudents) {
            StuStudent u = new StuStudent();
            u.setName(stuStudent.getName());
            u.setSex(stuStudent.getSex());
            u.setMobilePhone(stuStudent.getMobilePhone());
            u.setStudentNo(stuStudent.getStudentNo());
            dataset.add(u);
        }
        ExcelExportParam<StuStudent> obj = new ExcelExportParam<StuStudent>();
        obj.setColData(dataset);
        obj.setHeaders(headers);
        try {
            OutputStream out = new FileOutputStream("D://Student.xls");
            obj.setOut(out);
            ex.exportExcel(obj);
            out.close();
            System.out.println("excel导出成功!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            OutputStream out = new FileOutputStream("D://Student.xls");
            List<String> lst = new ArrayList<String>();
            lst.add("className");
            lst.add("userName");
            obj.setLstColumn(lst);
            obj.setOut(out);
            ex.exportExcelByColomn(obj);
            out.close();
            System.out.println("excel指定列导出成功!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public Result loopStudentIds(String[] studentIds) {
        for (String studentId:
                studentIds) {
            auditStudent(studentId);
        }
        return new Result(true);
    }
    private Result auditStudent(String studentId) {
        StuStudent student = read(StuStudent.class, studentId);
        TraceUtils.setUpdateTrace(student);
        String currentTime = LocalDateTimeUtil.format(LocalDateTime.now(), "yyMMddHHmmssSSS");
        String examCardNo = currentTime.concat(RandomUtil.randomNumbers(1));
        student.setStudentNumber(examCardNo);
        student.setStatus(StuStudent.STATUS_ACTIVE);
        save(student);
        return new Result(true);
    }
    @Override
    public List<ClsClass> findClass() {
        StringBuffer hql=new StringBuffer("from ClsClass where deleteFlag is false");
        List<Object> arg = CollectionUtils.newList();
        List<ClsClass> clsClasses = find(hql.toString(), arg, ClsClass.class);
        return clsClasses;
    }
}