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 { @Override public List 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 args = CollectionUtils.newList(keyword + "%", status); hql.append(" order by createTime desc"); List list = findList(hql.toString(), new Pager(limit, pageNum), args, StuStudent.class); return list; } @Override public int findSchoolRollListCount(String keyword, String status) { StringBuffer hql=new StringBuffer("from StuStudent where name like ? and status=? and deleteFlag is false"); List args = CollectionUtils.newList(keyword + "%", status); 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 args = CollectionUtils.newList(studentId); StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class); if(stuStudent!=null && classId!=null){ 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 args = CollectionUtils.newList("active"); List stuStudents = find(hql.toString(), args, StuStudent.class); ExcelExportUtils ex = new ExcelExportUtils(); String[] headers = { "ÐÕÃû", "ÐÔ±ð" ,"ÊÖ»úºÅ" ,"Éí·ÝÖ¤"}; List dataset = new ArrayList(); 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 obj = new ExcelExportParam(); 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 lst = new ArrayList(); 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 findClass() { StringBuffer hql=new StringBuffer("from ClsClass where deleteFlag is false"); List arg = CollectionUtils.newList(); List clsClasses = find(hql.toString(), arg, ClsClass.class); return clsClasses; } }