|
@@ -17,6 +17,7 @@ import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.person.StudentDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.person.StudentPracticeRecordDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.school.SchoolInfoDO;
|
|
|
+import com.citu.module.menduner.system.enums.person.StudentPracticeStatusEnum;
|
|
|
import org.apache.ibatis.annotations.Mapper;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
@@ -61,6 +62,22 @@ public interface StudentPracticeRecordMapper extends BaseMapperX<StudentPractice
|
|
|
wrapper.innerJoin(StudentDO.class, StudentDO::getId, StudentPracticeRecordDO::getStudentId);
|
|
|
wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, StudentPracticeRecordDO::getEnterpriseId);
|
|
|
wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, StudentPracticeRecordDO::getJobId);
|
|
|
+
|
|
|
+ if(StudentPracticeStatusEnum.IN_PROGRESS.getStatus().equals(reqVO.getStatus())) {
|
|
|
+ // 等待实习中
|
|
|
+ if (Integer.valueOf(0).equals(reqVO.getStudentProcessStatus())) {
|
|
|
+ wrapper.ge(StudentPracticeRecordDO::getStartTime, LocalDateTime.now());
|
|
|
+ }
|
|
|
+ // 实习中
|
|
|
+ if (Integer.valueOf(1).equals(reqVO.getStudentProcessStatus())) {
|
|
|
+ wrapper.and(qw -> qw.le(StudentPracticeRecordDO::getStartTime, LocalDateTime.now()).and(qw2 -> qw2.ge(StudentPracticeRecordDO::getEndTime, LocalDateTime.now())));
|
|
|
+ }
|
|
|
+ // 实习结束
|
|
|
+ if (Integer.valueOf(2).equals(reqVO.getStudentProcessStatus())) {
|
|
|
+ wrapper.le(StudentPracticeRecordDO::getEndTime, LocalDateTime.now());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
wrapper.eqIfPresent(StudentPracticeRecordDO::getJobId, reqVO.getJobId());
|
|
|
wrapper.eqIfPresent(StudentPracticeRecordDO::getJobFairId, reqVO.getJobFairId());
|
|
|
wrapper.eqIfPresent(StudentPracticeRecordDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
@@ -68,6 +85,9 @@ public interface StudentPracticeRecordMapper extends BaseMapperX<StudentPractice
|
|
|
wrapper.betweenIfPresent(StudentPracticeRecordDO::getStartTime, reqVO.getStartTime());
|
|
|
wrapper.betweenIfPresent(StudentPracticeRecordDO::getEndTime, reqVO.getEndTime());
|
|
|
wrapper.eqIfPresent(StudentPracticeRecordDO::getStatus, reqVO.getStatus());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
wrapper.orderByDesc(StudentPracticeRecordDO::getUpdateTime);
|
|
|
return selectJoinPage(reqVO, StudentPracticeRecordDetailRespVO.class, wrapper);
|
|
|
}
|
|
@@ -75,6 +95,7 @@ public interface StudentPracticeRecordMapper extends BaseMapperX<StudentPractice
|
|
|
/**
|
|
|
* 实习记录状态统计
|
|
|
**/
|
|
|
+ @Deprecated
|
|
|
default List<CommonRespVO> getStatusCount
|
|
|
(RecruitAnalysisPageReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
MPJLambdaWrapperX<StudentPracticeRecordDO> wrapper = new MPJLambdaWrapperX<>();
|
|
@@ -98,6 +119,33 @@ public interface StudentPracticeRecordMapper extends BaseMapperX<StudentPractice
|
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 实习记录状态统计
|
|
|
+ **/
|
|
|
+ default List<CommonRespVO> getStatusCount2
|
|
|
+ (RecruitAnalysisPageReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
+ MPJLambdaWrapperX<StudentPracticeRecordDO> wrapper = new MPJLambdaWrapperX<>();
|
|
|
+ wrapper.select(" if(start_time > now(),0, if(start_time < now() and end_time > now(),1,2 ) ) as `key`");
|
|
|
+ wrapper.selectCount(StudentPracticeRecordDO::getId, CommonRespVO::getValue);
|
|
|
+
|
|
|
+ wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getId, StudentPracticeRecordDO::getPersonId);
|
|
|
+ wrapper.innerJoin(StudentDO.class, StudentDO::getId, StudentPracticeRecordDO::getStudentId);
|
|
|
+ wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, StudentPracticeRecordDO::getEnterpriseId);
|
|
|
+ wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, StudentPracticeRecordDO::getJobId);
|
|
|
+
|
|
|
+ wrapper.betweenIfPresent(StudentPracticeRecordDO::getCreateTime, startTime, endTime);
|
|
|
+
|
|
|
+ wrapper.eqIfPresent(StudentPracticeRecordDO::getJobId, reqVO.getJobId());
|
|
|
+ wrapper.eqIfPresent(StudentPracticeRecordDO::getStatus, reqVO.getStatus());
|
|
|
+ wrapper.eqIfPresent(StudentPracticeRecordDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
+ wrapper.inIfPresent(StudentPracticeRecordDO::getUserId, reqVO.getUserId());
|
|
|
+ wrapper.groupBy("`key`");
|
|
|
+ wrapper.orderByAsc("`key`");
|
|
|
+
|
|
|
+ return selectJoinList(CommonRespVO.class, wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 实习记录状态统计
|
|
|
**/
|