|
@@ -1,17 +1,28 @@
|
|
package com.ym.mec.biz.service.impl;
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
|
|
import com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
|
|
import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
|
|
import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
|
|
|
|
+import com.ym.mec.biz.dal.entity.TeacherLeaveRecord.CoursesScheduleHistory;
|
|
|
|
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
|
|
import com.ym.mec.biz.service.TeacherLeaveRecordService;
|
|
import com.ym.mec.biz.service.TeacherLeaveRecordService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
|
+import com.ym.mec.util.date.DateUtil;
|
|
|
|
+import com.ym.mec.util.json.JsonUtil;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
-public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
|
|
|
|
-
|
|
|
|
|
|
+public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TeacherLeaveRecordDao teacherLeaveRecordDao;
|
|
private TeacherLeaveRecordDao teacherLeaveRecordDao;
|
|
|
|
|
|
@@ -19,5 +30,53 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
|
|
public BaseDAO<Long, TeacherLeaveRecord> getDAO() {
|
|
public BaseDAO<Long, TeacherLeaveRecord> getDAO() {
|
|
return teacherLeaveRecordDao;
|
|
return teacherLeaveRecordDao;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
|
+ public boolean askForLeave(Integer userId, TeacherLeaveRecord teacherLeaveRecord) {
|
|
|
|
+
|
|
|
|
+ Date date = new Date();
|
|
|
|
+
|
|
|
|
+ teacherLeaveRecord.setUserId(userId);
|
|
|
|
+ teacherLeaveRecord.setUpdateTime(date);
|
|
|
|
+ teacherLeaveRecord.setCreateTime(date);
|
|
|
|
+ teacherLeaveRecord.setStatus(AuditStatusEnum.ING);
|
|
|
|
+ teacherLeaveRecord.setDays(DateUtil.hoursBetween(teacherLeaveRecord.getStartTime(), teacherLeaveRecord.getEndTime()) / 8d);
|
|
|
|
+
|
|
|
|
+ teacherLeaveRecordDao.insert(teacherLeaveRecord);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
|
+ public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
|
|
|
|
+
|
|
|
|
+ TeacherLeaveRecord teacherLeaveRecord = teacherLeaveRecordDao.get(id);
|
|
|
|
+ if (teacherLeaveRecord == null) {
|
|
|
|
+ throw new BizException("请假记录不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (teacherLeaveRecord.getStatus() != AuditStatusEnum.ING || status == AuditStatusEnum.ING) {
|
|
|
|
+ throw new BizException("审批状态不正确");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ teacherLeaveRecord.setStatus(status);
|
|
|
|
+ teacherLeaveRecord.setRemark(remark);
|
|
|
|
+
|
|
|
|
+ teacherLeaveRecordDao.update(teacherLeaveRecord);
|
|
|
|
+
|
|
|
|
+ if (StringUtils.isNotBlank(teacherLeaveRecord.getCoursesScheduleJson())) {
|
|
|
|
+ List<CoursesScheduleHistory> coursesScheduleHistoryList = JsonUtil.parseArray(teacherLeaveRecord.getCoursesScheduleJson(),
|
|
|
|
+ CoursesScheduleHistory.class);
|
|
|
|
+
|
|
|
|
+ if (coursesScheduleHistoryList != null && coursesScheduleHistoryList.size() > 0) {
|
|
|
|
+ for (CoursesScheduleHistory his : coursesScheduleHistoryList) {
|
|
|
|
+ //课时调整
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
}
|
|
}
|