Procházet zdrojové kódy

调整 学生查看实习状态和企业查看实习状态接口,重新定义实习状态

DESKTOP-VAEGFGM\zqc před 2 měsíci
rodič
revize
18fc39de37

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/record/StudentPracticeRecordDetailRespVO.java

@@ -29,4 +29,9 @@ public class StudentPracticeRecordDetailRespVO extends StudentPracticeRecordResp
     @Schema(description = "实习的企业")
     private Boolean internshipEnterprise=false;
 
+
+    @Schema(description = "实习进度状态", example = "0")
+    private Integer studentProcessStatus;
+
+
 }

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/record/StudentPracticeRecordPageReqVO.java

@@ -41,5 +41,10 @@ public class StudentPracticeRecordPageReqVO extends PageParam {
     @Schema(description = "状态", example = "2")
     private String status;
 
+    @Schema(description = "实习进度状态", example = "0")
+    private Integer studentProcessStatus;
+
+
+
 
 }

+ 48 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/StudentPracticeRecordMapper.java

@@ -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);
+    }
+
     /**
      * 实习记录状态统计
      **/

+ 36 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/student/StudentPracticeRecordServiceImpl.java

@@ -21,7 +21,9 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.module.menduner.common.util.TimeUtils.generateDateTimeRange;
@@ -97,8 +99,14 @@ public class StudentPracticeRecordServiceImpl implements StudentPracticeRecordSe
 
     @Override
     public List<CommonRespVO> getStatusCount(RecruitAnalysisPageReqVO reqVO) {
+        reqVO.setStatus(StudentPracticeStatusEnum.IN_PROGRESS.getStatus());
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
-        List<CommonRespVO> result = mapper.getStatusCount(reqVO, timeRange[0], timeRange[1]);
+        List<CommonRespVO> result = mapper.getStatusCount2(reqVO, timeRange[0], timeRange[1]);
+//        Map<Integer,CommonRespVO> respVOMap =new HashMap<>();
+//
+//        for (CommonRespVO commonRespVO : result) {
+//
+//        }
         // 填充
         for (StudentPracticeStatusEnum value : StudentPracticeStatusEnum.values()) {
             CommonRespVO respVO = result.stream()
@@ -116,7 +124,11 @@ public class StudentPracticeRecordServiceImpl implements StudentPracticeRecordSe
     @Override
     public PageResult<StudentPracticeRecordDetailRespVO> page(Long userId, StudentPracticeRecordPageReqVO reqVO) {
         PageResult<StudentPracticeRecordDetailRespVO> result = mapper.page(userId, reqVO);
+        LocalDateTime now = LocalDateTime.now();
         result.getList().forEach(resp -> {
+
+
+
             resp.getStudent().setSchoolInfo(schoolInfoService.getBySchoolId(resp.getStudent().getSchoolId()));
             SchoolOrganizationDO dept = schoolOrganizationService.getSchoolOrganization(resp.getStudent().getSchoolDeptId());
             resp.getStudent().setSchoolDept(BeanUtils.toBean(dept, SchoolOrganizationRespVO.class));
@@ -128,6 +140,29 @@ public class StudentPracticeRecordServiceImpl implements StudentPracticeRecordSe
                 resp.setInternshipEnterprise(true);
             }
 
+            if(StudentPracticeStatusEnum.IN_PROGRESS.getStatus().equals(resp.getStatus())){
+
+                // 等待实习
+                if(0 < resp.getStartTime().compareTo(now)){
+                    resp.setStudentProcessStatus(0);
+
+                }
+
+                // 实习中
+                if(0 > resp.getStartTime().compareTo(now)  && 0 < resp.getEndTime().compareTo(now)){
+                    resp.setStudentProcessStatus(1);
+                    return;
+                }
+
+
+                // 实习结束
+                if(0 > resp.getEndTime().compareTo(now)){
+                    resp.setStudentProcessStatus(2);
+                }
+
+            }
+
+
         });
         return result;
     }