dzx 1 ano atrás
pai
commit
89fc5f49ef

+ 9 - 1
src/main/java/com/xjrsoft/module/databoard/controller/DatadetailController.java

@@ -96,6 +96,14 @@ public class DatadetailController {
         if(dto.getUserId() != null){
             instanceQuery.variableValueEquals(WorkflowConstant.PROCESS_START_USER_ID_KEY, dto.getUserId());
         }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if(dto.getStartDate() != null){
+            startTime = dto.getStartDate().atStartOfDay();
+        }
+        if(dto.getEndDate() != null){
+            endTime = dto.getEndDate().atStartOfDay().plusDays(1).plusNanos(-1);
+        }
         if (!ObjectUtil.isNull(dto.getStartDate())) {
             instanceQuery.startedAfter(WorkFlowUtil.getStartOfDay(dto.getStartDate()));
         }
@@ -105,7 +113,7 @@ public class DatadetailController {
 
         List<WorkflowExtra> workflowExtras = extraService.list(
                 new MPJLambdaWrapper<WorkflowExtra>()
-                        .between((dto.getStartDate() != null && dto.getEndDate() != null), WorkflowExtra::getLaunchTime, dto.getStartDate(), dto.getEndDate())
+                        .between((startTime != null && endTime != null), WorkflowExtra::getLaunchTime, startTime, endTime)
                         .select(WorkflowExtra::getId)
                         .select(WorkflowExtra.class, x -> VoToColumnUtil.fieldsToColumns(WorkflowExtra.class).contains(x.getProperty()))
                         .leftJoin(WorkflowSchema.class, WorkflowSchema::getId, WorkflowExtra::getSchemaId)

+ 15 - 0
src/main/java/com/xjrsoft/module/student/controller/BaseNewStudentController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.secure.BCrypt;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,9 +14,12 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.RedisUtil;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
+import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.entity.BaseUserStudent;
 import com.xjrsoft.module.base.entity.WhitelistManagement;
+import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.base.service.IBaseUserStudentService;
 import com.xjrsoft.module.base.service.IWhitelistManagementService;
 import com.xjrsoft.module.organization.entity.User;
@@ -80,6 +84,7 @@ public class BaseNewStudentController {
     private final RedisUtil redisUtil;
     private final IBaseUserStudentService userStudentService;
     private final CommonPropertiesConfig propertiesConfig;
+    private final IBaseSemesterService semesterService;
     @GetMapping(value = "/page")
     @ApiOperation(value="新生维护信息列表(分页)")
     @SaCheckPermission("basenewstudent:detail")
@@ -98,6 +103,16 @@ public class BaseNewStudentController {
         if(roleList.contains("CLASSTE") && roleList.contains("TEACHER") && dto.getTeacherId() == null){
             dto.setTeacherId(StpUtil.getLoginIdAsLong());
         }
+        if(dto.getBaseSemesterId() == null){
+            LambdaQueryWrapper<BaseSemester> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper
+                    .orderByDesc(BaseSemester::getStartDate)
+                    .select(BaseSemester.class,x -> VoToColumnUtil.fieldsToColumns(BaseSemester.class).contains(x.getProperty()));
+            List<BaseSemester> semesterList = semesterService.list(queryWrapper);
+            if(!semesterList.isEmpty()){
+                dto.setBaseSemesterId(semesterList.get(0).getId());
+            }
+        }
         Page<BaseNewStudentPageVo> page = baseNewStudentService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
         PageOutput<BaseNewStudentPageVo> pageOutput = ConventPage.getPageOutput(page, BaseNewStudentPageVo.class);
         return RT.ok(pageOutput);

+ 12 - 1
src/main/java/com/xjrsoft/module/student/dto/BaseNewStudentPageDto.java

@@ -36,7 +36,6 @@ public class BaseNewStudentPageDto extends PageInput {
     @ApiModelProperty("第二志愿")
     private String secondAmbition;
 
-
     @ApiModelProperty("添加时间-开始")
     private LocalDateTime startDate;
 
@@ -63,4 +62,16 @@ public class BaseNewStudentPageDto extends PageInput {
 
     @ApiModelProperty("班主任id")
     private Long teacherId;
+
+    @ApiModelProperty("班级id")
+    private Long classId;
+
+    @ApiModelProperty("就读方式")
+    private Long stduyStatus;
+
+    @ApiModelProperty("学期id")
+    private Long baseSemesterId;
+
+    @ApiModelProperty("是否已报到(1:是 0:否)")
+    private Integer isReport;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseNewStudentPageVo.java

@@ -170,4 +170,7 @@ public class BaseNewStudentPageVo {
 
     @ApiModelProperty("报到时间")
     private LocalDate reportTime;
+
+    @ApiModelProperty("是否已报到(1:是 0:否)")
+    private Integer isReport;
 }

+ 13 - 3
src/main/resources/mapper/student/BaseNewStudentMapper.xml

@@ -77,7 +77,8 @@
     <select id="getReportPage" parameterType="com.xjrsoft.module.student.dto.BaseNewStudentPageDto" resultType="com.xjrsoft.module.student.vo.BaseNewStudentPageVo">
         SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,
         t1.score,t1.graduate_class,t1.source,t5.name as source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name as first_ambition,
-        t8.name as second_ambition,t1.is_adjust,t1.status,ifnull(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name ,t13.report_time,t9.id as user_id FROM base_new_student t1
+        t8.name as second_ambition,t1.is_adjust,t1.status,ifnull(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name ,t13.report_time,
+        t9.id as user_id,(select count(*) from student_report_record where user_id = t1.id and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) as is_report FROM base_new_student t1
         LEFT JOIN xjr_dictionary_detail t2 ON t1.gender = t2.code AND t2.item_id = 2023000000000000004
         LEFT JOIN xjr_dictionary_detail t3 ON t1.stduy_status = t3.code AND t3.item_id = 2023000000000000030
         LEFT JOIN xjr_dictionary_detail t5 ON t1.source = t5.code AND t5.item_id = 2023000000000000028
@@ -88,7 +89,7 @@
         LEFT JOIN base_student_school_roll t10 ON t9.id = t10.user_id AND t10.delete_mark = 0
         LEFT JOIN base_class t11 ON t10.class_id = t11.id
         LEFT JOIN xjr_user t12 ON t11.teacher_id = t12.id
-        LEFT JOIN student_report_record t13 ON t9.id = t13.user_id
+        LEFT JOIN student_report_record t13 ON t9.id = t13.user_id and t13.base_semester_id = #{dto.baseSemesterId}
         WHERE t1.delete_mark = 0
         <if test="dto.name != null and dto.name != ''">
             and t1.name like concat('%', #{dto.name}, '%')
@@ -115,7 +116,7 @@
         </if>
 
         <if test="dto.startDate != null and dto.endDate != null">
-            AND t1.create_date between #{dto.startDate} and #{dto.endDate}
+            AND t13.report_time between #{dto.startDate} and #{dto.endDate}
         </if>
         <if test="dto.gender != null and dto.gender != ''">
             AND t1.gender = #{dto.gender}
@@ -129,6 +130,15 @@
         <if test="dto.teacherId != null">
             AND t11.teacher_id = #{dto.teacherId}
         </if>
+        <if test="dto.classId != null">
+            AND t11.id = #{dto.classId}
+        </if>
+        <if test="dto.isReport != null">
+            AND (select count(*) from student_report_record where user_id = t1.id and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) = #{dto.isReport}
+        </if>
+        <if test="dto.stduyStatus != null">
+            AND t10.stduy_status = #{dto.stduyStatus}
+        </if>
         <if test="dto.enrollmentPlanId != null">
             AND t1.enrollment_plan_id = #{dto.enrollmentPlanId}
         </if>