派生自 projectDept/qhighschool

yn147
2023-11-24 d7963a84282c548fee3595b3343e6ae6ca49bb29
src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
@@ -3,13 +3,10 @@
import com.qxueyou.scc.admin.attendance.AttendanceService;
import com.qxueyou.scc.base.model.Pager;
import com.qxueyou.scc.base.model.Result;
import com.qxueyou.scc.base.service.ICommonService;
import com.qxueyou.scc.base.service.impl.CommonAppService;
import com.qxueyou.scc.base.util.CollectionUtils;
import com.qxueyou.scc.base.util.TraceUtils;
import com.qxueyou.scc.teach.student.model.StuStudent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.qxueyou.scc.teach.subject.model.Subject;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
@@ -20,42 +17,52 @@
public class AttendanceServiceImpl extends CommonAppService implements AttendanceService {
    @Override
    public String attendanceUpAndAdd(String studentId, String subjectId) {
    public String attendanceUpAndAdd(String userId, String subjectId, String subjectName) {
        String s="";
        StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
        StringBuffer hql=new StringBuffer("from StuStudent where userId=? and deleteFlag is false");
        List<Object> args = CollectionUtils.newList(studentId);
        List<Object> args = CollectionUtils.newList(userId);
        StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
        try{
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            //上课时间
            String s1 = "9:00:00";
            //如果上课时间(9点)>当前时间
            String s2 = sdf.format(new Date());
            int compareTo = s1.compareTo(s2);
            String hqlTwo = "from Subject where name = ?";
            List<Object> argsTwo = CollectionUtils.newList(subjectName);
            Subject subject = findUnique(hqlTwo,argsTwo,Subject.class);
            //上课时间
            String classTime = subject.getEndTime();
            //当前时间
            String currentTime = sdf.format(new Date());
            //添加subjectId
            if(subject.getSubjectId() == subjectId){
                stuStudent.setSubjectId(subjectId);
            }else {
                stuStudent.setSubjectId(subject.getSubjectId());
            }
            //如果上课时间(9点)>当前时间
            int compareTo = classTime.compareTo(currentTime);
            if(compareTo>0)
            {
                s="签到时间已过,本节课按照旷课处理";
                stuStudent.setAttendanceStatus("旷课");
                s="签到时间已过";
                stuStudent.setAttendanceStatus(stuStudent.STATUS_TRUANCY);
            }
            else
            {
                String s3 = "8:50:00";
                compareTo = s2.compareTo(s3);
                //打卡时间
                String clockTime = subject.getEndTime();
                compareTo = currentTime.compareTo(clockTime);
                if(compareTo<0)
                {
                    s="未到签到时间,请与上课时间前10分钟签到";
                    stuStudent.setAttendanceStatus("未打卡");
                    s="未到签到时间";
                    stuStudent.setAttendanceStatus(stuStudent.STATUS_NO_CLOCKING);
                }
                else
                {
                    if(stuStudent!=null && subjectId!=null){
                        stuStudent.setSubjectId(subjectId);
                        stuStudent.setAttendanceStatus("已打卡");
                        s = "成功完成签到";
                        stuStudent.setAttendanceStatus(stuStudent.STATUS_PUNCHE);
                        s = "成功签到";
                    }
                }
            }
@@ -69,10 +76,10 @@
    }
    @Override
    public List<StuStudent> findAttendanceList(Integer limit, Integer pageNum, String keyword, String subjectId) {
        StringBuffer hql=new StringBuffer("from StuStudent where name like ? and subjectId = ? and deleteFlag is false");
    public List<StuStudent> findAttendanceList(Integer limit, Integer pageNum, String keyword, String classId) {
        StringBuffer hql=new StringBuffer("from StuStudent where name like ? and classId = ? and deleteFlag is false");
        List<Object> args = CollectionUtils.newList(keyword + "%",subjectId);
        List<Object> args = CollectionUtils.newList(keyword + "%",classId);
        hql.append(" order by createTime desc");
@@ -82,20 +89,24 @@
    }
    @Override
    public Result updateAttendanceStatus(String studentId, String attendanceStatus) {
        StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
    public Result updateAttendanceStatus(String[] studentId, String attendanceStatus) {
        boolean pd = true;
        for (String studentIds: studentId){
            StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
        List<Object> args = CollectionUtils.newList(studentId);
            List<Object> args = CollectionUtils.newList(studentIds);
        StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
            StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
        if(stuStudent!=null && attendanceStatus!=null){
            stuStudent.setAttendanceStatus(attendanceStatus);
            save(stuStudent);
            return new Result(true);
            if(stuStudent!=null && attendanceStatus!=null){
                stuStudent.setAttendanceStatus(attendanceStatus);
                save(stuStudent);
                pd = true;
            }else {
                pd = false;
            }
        }
        return new Result(false);
        return new Result(pd);
    }
    @Override