dzx 1 year ago
parent
commit
37d79b29eb

+ 13 - 4
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java

@@ -9,6 +9,8 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.banding.dto.AddBandingTaskClassDto;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
+import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
+import com.xjrsoft.module.banding.dto.SureBandingTaskDto;
 import com.xjrsoft.module.banding.dto.UpdateBandingClassDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.service.IBandingTaskClassService;
@@ -58,11 +60,19 @@ public class BandingTaskClassController {
     }
 
     @GetMapping(value = "/class-student")
-    @ApiOperation(value="新生分班任务班级配置列表(分页)")
+    @ApiOperation(value="分班后的学生列表")
     @SaCheckPermission("bandingtask:detail")
-    public RT<List<BandingTaskClassPageVo>> classStudent(@Valid BandingTaskClassPageDto dto){
+    public RT<List<BandingTaskClassPageVo>> classStudent(@Valid BandingTaskClassStudentPageDto dto){
+        List<BandingTaskClassPageVo> list = bandingTaskClassService.classStudent(dto);
+        return RT.ok(list);
+    }
 
-        return RT.ok();
+    @GetMapping(value = "/class-sure")
+    @ApiOperation(value="分班确认列表")
+    @SaCheckPermission("bandingtask:detail")
+    public RT<List<BandingTaskClassPageVo>> classSure(@Valid BandingTaskClassStudentPageDto dto){
+        List<BandingTaskClassPageVo> list = bandingTaskClassService.classStudent(dto);
+        return RT.ok(list);
     }
 
     @GetMapping(value = "/info")
@@ -93,7 +103,6 @@ public class BandingTaskClassController {
 
         BandingTaskClass bandingTask = BeanUtil.toBean(dto, BandingTaskClass.class);
         return RT.ok(bandingTaskClassService.update(bandingTask));
-
     }
 
     @DeleteMapping

+ 13 - 0
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskController.java

@@ -11,9 +11,11 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.AddBandingTaskDto;
 import com.xjrsoft.module.banding.dto.AddBandingTaskRuleDto;
 import com.xjrsoft.module.banding.dto.BandingTaskPageDto;
+import com.xjrsoft.module.banding.dto.SureBandingTaskDto;
 import com.xjrsoft.module.banding.dto.UpdateBandingTaskDto;
 import com.xjrsoft.module.banding.entity.BandingRule;
 import com.xjrsoft.module.banding.entity.BandingTask;
+import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.entity.BandingTaskRule;
 import com.xjrsoft.module.banding.service.IBandingRuleService;
 import com.xjrsoft.module.banding.service.IBandingTaskRuleService;
@@ -150,5 +152,16 @@ public class BandingTaskController {
         }
         return RT.ok(list);
     }
+    @PostMapping("/sure")
+    @ApiOperation(value = "确认分班")
+    @SaCheckPermission("bandingTaskClass:sure")
+    public RT<Boolean> sure(@Valid @RequestBody SureBandingTaskDto dto){
+        BandingTask bandingTask = bandingTaskService.getById(dto.getId());
+        bandingTask.setStatus(1);
+        bandingTask.setModifyDate(new Date());
+        Boolean isSuccess = bandingTaskService.update(bandingTask);
+        return RT.ok(isSuccess);
+    }
+
 
 }

+ 3 - 1
src/main/java/com/xjrsoft/module/banding/dto/BandingTaskClassPageDto.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.banding.dto;
 
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -15,5 +16,6 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class BandingTaskClassPageDto extends PageInput {
 
-
+    @ApiModelProperty("任务id")
+    private Long bandingTaskId;
 }

+ 26 - 0
src/main/java/com/xjrsoft/module/banding/dto/SureBandingTaskDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class SureBandingTaskDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 年级id
+    */
+    @ApiModelProperty("id")
+    private Long id;
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTask.java

@@ -107,4 +107,7 @@ public class BandingTask implements Serializable {
     @EntityMapping(thisField = "id", joinField = "bandingTaskId")
     private List<BandingTaskClass> bandingTaskClassList;
 
+    @ApiModelProperty("任务状态(0:未确认 1:已确认)")
+    private Integer status;
+
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskClassMapper.java

@@ -3,9 +3,13 @@ package com.xjrsoft.module.banding.mapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
+import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
 * @title: 新生分班任务班级配置
@@ -16,4 +20,6 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface BandingTaskClassMapper extends MPJBaseMapper<BandingTaskClass> {
     Page<BandingTaskClassPageVo> getPage(Page<BandingTaskClassPageVo> page, BandingTaskClassPageDto dto);
+
+    List<BandingTaskClassPageVo> getClassStudent(@Param("dto") BandingTaskClassStudentPageDto dto);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingTaskClassService.java

@@ -3,6 +3,7 @@ package com.xjrsoft.module.banding.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
+import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 
@@ -44,4 +45,6 @@ public interface IBandingTaskClassService extends MPJBaseService<BandingTaskClas
     Page<BandingTaskClassPageVo> getPage(Page<BandingTaskClassPageVo> page, BandingTaskClassPageDto dto);
 
     Boolean reset(Long bandingTaskId);
+
+    List<BandingTaskClassPageVo> classStudent(BandingTaskClassStudentPageDto dto);
 }

+ 6 - 1
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
+import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
 import com.xjrsoft.module.banding.mapper.BandingTaskClassMapper;
 import com.xjrsoft.module.banding.mapper.BandingTaskClassStudentMapper;
 import com.xjrsoft.module.banding.mapper.BandingTaskMapper;
 import com.xjrsoft.module.banding.service.IBandingTaskClassService;
-import com.xjrsoft.module.banding.service.IBandingTaskService;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -81,4 +81,9 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
         }
         return true;
     }
+
+    @Override
+    public List<BandingTaskClassPageVo> classStudent(BandingTaskClassStudentPageDto dto) {
+        return this.baseMapper.getClassStudent(dto);
+    }
 }

+ 57 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskClassSureListVo.java

@@ -0,0 +1,57 @@
+package com.xjrsoft.module.banding.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+* @title: 新生分班任务分页列表出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingTaskClassSureListVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("班级排序")
+    private Integer sortCode;
+
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+
+    @ApiModelProperty("专业方向")
+    private String majorSetName;
+
+    @ApiModelProperty("班级名称")
+    private String name;
+
+    @ApiModelProperty("班主任名称")
+    private String teacherName;
+
+    @ApiModelProperty("教室名称")
+    private String classroomName;
+
+    @ApiModelProperty("班级人数")
+    private Integer number;
+
+    @ApiModelProperty("是否是订单班")
+    private Integer isOrdeClass;
+
+    @ApiModelProperty("男生人数")
+    private Integer maleCount;
+
+    @ApiModelProperty("女生人数")
+    private Integer femaleCount;
+
+    @ApiModelProperty("住校人数")
+    private Integer stayCount;
+
+    @ApiModelProperty("走读人数")
+    private Integer notStayCount;
+
+
+}

+ 14 - 1
src/main/resources/mapper/banding/BandingTaskClassMapper.xml

@@ -11,7 +11,20 @@
         LEFT JOIN base_major_set t2 ON t1.major_set_id = t2.id
         LEFT JOIN xjr_user t3 ON t1.teacher_id = t3.id
         LEFT JOIN base_classroom t4 ON t1.classroom_id = t4.id
-        WHERE t1.delete_mark = 0
+        WHERE t1.delete_mark = 0 and t1.banding_task_id = #{dto.bandingTaskId}
+    </select>
+
+    <select id="getClassSure" parameterType="com.xjrsoft.module.banding.dto.BandingTaskClassPageDto" resultType="com.xjrsoft.module.banding.vo.BandingTaskClassPageVo">
+        SELECT t1.id, t1.major_set_id,t2.name AS major_set_name, t1.name, t1.number,t1.sort_code,
+        (SELECT COUNT(*) FROM base_new_student WHERE delete_mark = 0 AND gender = 'SB10001') AS male_count,
+        (SELECT COUNT(*) FROM base_new_student WHERE delete_mark = 0 AND gender = 'SB10002') AS female_count,
+        (SELECT COUNT(*) FROM base_new_student WHERE delete_mark = 0 AND stduy_status = 'FB3001') AS not_stay_count,
+        (SELECT COUNT(*) FROM base_new_student WHERE delete_mark = 0 AND stduy_status = 'FB3002') AS stay_count,
+        t1.height, t1.weight,t3.name as teacher_name FROM banding_task_class t1
+        LEFT JOIN base_major_set t2 ON t1.major_set_id = t2.id
+        LEFT JOIN xjr_user t3 ON t1.teacher_id = t3.id
+        LEFT JOIN base_classroom t4 ON t1.classroom_id = t4.id
+        WHERE t1.delete_mark = 0 and t1.banding_task_id = #{dto.bandingTaskId}
     </select>
 
     <select id="getClassStudent" parameterType="com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto" resultType="com.xjrsoft.module.banding.vo.BandingTaskClassStudentListVo">