dzx vor 1 Jahr
Ursprung
Commit
e5a9930f38
36 geänderte Dateien mit 1822 neuen und 0 gelöschten Zeilen
  1. 111 0
      src/main/java/com/xjrsoft/module/banding/controller/BandingRuleController.java
  2. 106 0
      src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java
  3. 107 0
      src/main/java/com/xjrsoft/module/banding/controller/BandingTaskController.java
  4. 37 0
      src/main/java/com/xjrsoft/module/banding/dto/AddBandingRuleDto.java
  5. 68 0
      src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskClassDto.java
  6. 42 0
      src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskDto.java
  7. 37 0
      src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskRuleDto.java
  8. 19 0
      src/main/java/com/xjrsoft/module/banding/dto/BandingRulePageDto.java
  9. 19 0
      src/main/java/com/xjrsoft/module/banding/dto/BandingTaskClassPageDto.java
  10. 19 0
      src/main/java/com/xjrsoft/module/banding/dto/BandingTaskPageDto.java
  11. 23 0
      src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingClassDto.java
  12. 24 0
      src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingRuleDto.java
  13. 24 0
      src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingTaskDto.java
  14. 89 0
      src/main/java/com/xjrsoft/module/banding/entity/BandingRule.java
  15. 110 0
      src/main/java/com/xjrsoft/module/banding/entity/BandingTask.java
  16. 122 0
      src/main/java/com/xjrsoft/module/banding/entity/BandingTaskClass.java
  17. 89 0
      src/main/java/com/xjrsoft/module/banding/entity/BandingTaskRule.java
  18. 16 0
      src/main/java/com/xjrsoft/module/banding/mapper/BandingRuleMapper.java
  19. 19 0
      src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskClassMapper.java
  20. 16 0
      src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskMapper.java
  21. 16 0
      src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskRuleMapper.java
  22. 14 0
      src/main/java/com/xjrsoft/module/banding/service/IBandingRuleService.java
  23. 45 0
      src/main/java/com/xjrsoft/module/banding/service/IBandingTaskClassService.java
  24. 39 0
      src/main/java/com/xjrsoft/module/banding/service/IBandingTaskService.java
  25. 19 0
      src/main/java/com/xjrsoft/module/banding/service/impl/BandingRuleServiceImpl.java
  26. 52 0
      src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java
  27. 59 0
      src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java
  28. 90 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingRulePageVo.java
  29. 38 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingRuleVo.java
  30. 47 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingTaskClassPageVo.java
  31. 70 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingTaskClassVo.java
  32. 59 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingTaskPageVo.java
  33. 38 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingTaskRuleVo.java
  34. 55 0
      src/main/java/com/xjrsoft/module/banding/vo/BandingTaskVo.java
  35. 16 0
      src/main/resources/mapper/banding/BandingTaskClassMapper.xml
  36. 68 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 111 - 0
src/main/java/com/xjrsoft/module/banding/controller/BandingRuleController.java

@@ -0,0 +1,111 @@
+package com.xjrsoft.module.banding.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.banding.dto.AddBandingRuleDto;
+import com.xjrsoft.module.banding.dto.BandingRulePageDto;
+import com.xjrsoft.module.banding.dto.UpdateBandingRuleDto;
+import com.xjrsoft.module.banding.entity.BandingRule;
+import com.xjrsoft.module.banding.service.IBandingRuleService;
+import com.xjrsoft.module.banding.vo.BandingRulePageVo;
+import com.xjrsoft.module.banding.vo.BandingRuleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/banding" + "/bandingRule")
+@Api(value = "/banding"  + "/bandingRule",tags = "新生分班规则代码")
+@AllArgsConstructor
+public class BandingRuleController {
+
+
+    private final IBandingRuleService bandingRuleService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="新生分班规则列表(分页)")
+    @SaCheckPermission("bandingrule:detail")
+    public RT<PageOutput<BandingRulePageVo>> page(@Valid BandingRulePageDto dto){
+
+        LambdaQueryWrapper<BandingRule> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(BandingRule::getId)
+                .select(BandingRule.class,x -> VoToColumnUtil.fieldsToColumns(BandingRulePageVo.class).contains(x.getProperty()));
+        IPage<BandingRule> page = bandingRuleService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<BandingRulePageVo> pageOutput = ConventPage.getPageOutput(page, BandingRulePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询新生分班规则信息")
+    @SaCheckPermission("bandingrule:detail")
+    public RT<BandingRuleVo> info(@RequestParam Long id){
+        BandingRule bandingRule = bandingRuleService.getById(id);
+        if (bandingRule == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(bandingRule, BandingRuleVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增新生分班规则")
+    @SaCheckPermission("bandingrule:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBandingRuleDto dto){
+        BandingRule bandingRule = BeanUtil.toBean(dto, BandingRule.class);
+        boolean isSuccess = bandingRuleService.save(bandingRule);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改新生分班规则")
+    @SaCheckPermission("bandingrule:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBandingRuleDto dto){
+
+        BandingRule bandingRule = BeanUtil.toBean(dto, BandingRule.class);
+        return RT.ok(bandingRuleService.updateById(bandingRule));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除新生分班规则")
+    @SaCheckPermission("bandingrule:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(bandingRuleService.removeBatchByIds(ids));
+
+    }
+    @PostMapping("/import")
+    @ApiOperation(value = "导入")
+    public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
+        List<BandingRulePageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(BandingRulePageVo.class).sheet().doReadSync();
+        Boolean result = bandingRuleService.saveBatch(BeanUtil.copyToList(savedDataList, BandingRule.class));
+        return RT.ok(result);
+    }
+
+}

+ 106 - 0
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java

@@ -0,0 +1,106 @@
+package com.xjrsoft.module.banding.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.model.result.RT;
+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.UpdateBandingClassDto;
+import com.xjrsoft.module.banding.entity.BandingTaskClass;
+import com.xjrsoft.module.banding.service.IBandingTaskClassService;
+import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
+import com.xjrsoft.module.banding.vo.BandingTaskClassVo;
+import com.xjrsoft.module.banding.vo.BandingTaskPageVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/banding" + "/bandingTaskClass")
+@Api(value = "/banding"  + "/bandingTaskClass",tags = "新生分班任务班级配置代码")
+@AllArgsConstructor
+public class BandingTaskClassController {
+
+
+    private final IBandingTaskClassService bandingTaskClassService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="新生分班任务班级配置列表(分页)")
+    @SaCheckPermission("bandingtask:detail")
+    public RT<PageOutput<BandingTaskClassPageVo>> page(@Valid BandingTaskClassPageDto dto){
+
+        Page<BandingTaskClassPageVo> page = bandingTaskClassService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<BandingTaskClassPageVo> pageOutput = ConventPage.getPageOutput(page, BandingTaskClassPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询新生分班任务信息")
+    @SaCheckPermission("bandingTaskClass:detail")
+    public RT<BandingTaskClassVo> info(@RequestParam Long id){
+        BandingTaskClass bandingTaskClass = bandingTaskClassService.getById(id);
+        if (bandingTaskClass == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(bandingTaskClass, BandingTaskClassVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增新生分班")
+    @SaCheckPermission("bandingTaskClass:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBandingTaskClassDto dto){
+        BandingTaskClass bandingTask = BeanUtil.toBean(dto, BandingTaskClass.class);
+        boolean isSuccess = bandingTaskClassService.add(bandingTask);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改新生分班")
+    @SaCheckPermission("bandingTaskClass:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBandingClassDto dto){
+
+        BandingTaskClass bandingTask = BeanUtil.toBean(dto, BandingTaskClass.class);
+        return RT.ok(bandingTaskClassService.update(bandingTask));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除新生分班")
+    @SaCheckPermission("bandingTaskClass:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(bandingTaskClassService.delete(ids));
+
+    }
+    @PostMapping("/import")
+    @ApiOperation(value = "导入")
+    public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
+        List<BandingTaskPageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(BandingTaskPageVo.class).sheet().doReadSync();
+        Boolean result = bandingTaskClassService.saveBatch(BeanUtil.copyToList(savedDataList, BandingTaskClass.class));
+        return RT.ok(result);
+    }
+
+}

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

@@ -0,0 +1,107 @@
+package com.xjrsoft.module.banding.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.banding.dto.AddBandingTaskDto;
+import com.xjrsoft.module.banding.dto.BandingTaskPageDto;
+import com.xjrsoft.module.banding.dto.UpdateBandingTaskDto;
+import com.xjrsoft.module.banding.entity.BandingTask;
+import com.xjrsoft.module.banding.service.IBandingTaskService;
+import com.xjrsoft.module.banding.vo.BandingTaskPageVo;
+import com.xjrsoft.module.banding.vo.BandingTaskVo;
+import com.xjrsoft.module.base.entity.BaseGrade;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/banding" + "/bandingTask")
+@Api(value = "/banding"  + "/bandingTask",tags = "新生分班任务代码")
+@AllArgsConstructor
+public class BandingTaskController {
+
+
+    private final IBandingTaskService bandingTaskService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="新生分班任务列表(分页)")
+    @SaCheckPermission("bandingtask:detail")
+    public RT<PageOutput<BandingTaskPageVo>> page(@Valid BandingTaskPageDto dto){
+
+        IPage<BandingTaskPageVo> page = bandingTaskService.selectJoinListPage(ConventPage.getPage(dto), BandingTaskPageVo.class,
+                new MPJLambdaWrapper<BandingTask>()
+                        .select(BandingTask::getId)
+                        .select(BandingTask.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskPageVo.class).contains(x.getProperty()))
+                        .selectAs(DictionaryDetail::getName, BandingTaskPageVo::getEnrollTypeCn)
+                        .selectAs(BaseGrade::getName, BandingTaskPageVo::getGradeName)
+                        .leftJoin(BaseGrade.class, BaseGrade::getId, BandingTask::getGradeId)
+                        .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BandingTask::getEnrollType)
+        );
+        PageOutput<BandingTaskPageVo> pageOutput = ConventPage.getPageOutput(page, BandingTaskPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询新生分班任务信息")
+    @SaCheckPermission("bandingtask:detail")
+    public RT<BandingTaskVo> info(@RequestParam Long id){
+        BandingTask bandingTask = bandingTaskService.getById(id);
+        if (bandingTask == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(bandingTask, BandingTaskVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增新生分班任务")
+    @SaCheckPermission("bandingtask:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBandingTaskDto dto){
+        BandingTask bandingTask = BeanUtil.toBean(dto, BandingTask.class);
+        boolean isSuccess = bandingTaskService.add(bandingTask);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改新生分班任务")
+    @SaCheckPermission("bandingtask:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBandingTaskDto dto){
+
+        BandingTask bandingTask = BeanUtil.toBean(dto, BandingTask.class);
+        return RT.ok(bandingTaskService.update(bandingTask));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除新生分班任务")
+    @SaCheckPermission("bandingtask:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(bandingTaskService.delete(ids));
+
+    }
+
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/banding/dto/AddBandingRuleDto.java

@@ -0,0 +1,37 @@
+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 AddBandingRuleDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+
+}

+ 68 - 0
src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskClassDto.java

@@ -0,0 +1,68 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+
+
+/**
+* @title: 新生分班任务班级配置
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class AddBandingTaskClassDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 专业方向id
+    */
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+    /**
+    * 班级人数
+    */
+    @ApiModelProperty("班级人数")
+    private Integer number;
+    /**
+    * 班主任id
+    */
+    @ApiModelProperty("班主任id")
+    private Long teacherId;
+    /**
+    * 教室id
+    */
+    @ApiModelProperty("教室id")
+    private Long classroomId;
+    /**
+    * 是否订单班(0:否 1:是)
+    */
+    @ApiModelProperty("是否订单班(0:否 1:是)")
+    private Long isOrderClass;
+    /**
+    * 身高
+    */
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+    /**
+    * 体重
+    */
+    @ApiModelProperty("体重")
+    private BigDecimal weight;
+
+}

+ 42 - 0
src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskDto.java

@@ -0,0 +1,42 @@
+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 AddBandingTaskDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 年级id
+    */
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+    /**
+    * 分班任务名称
+    */
+    @ApiModelProperty("分班任务名称")
+    private String name;
+
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/banding/dto/AddBandingTaskRuleDto.java

@@ -0,0 +1,37 @@
+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 AddBandingTaskRuleDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 新生分班规则(banding_rule)
+    */
+    @ApiModelProperty("新生分班规则(banding_rule)")
+    private Long bandingRuleId;
+    /**
+    * 分班任务(banding_task)
+    */
+    @ApiModelProperty("分班任务(banding_task)")
+    private Long bandingTaskId;
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/banding/dto/BandingRulePageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.banding.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 新生分班规则分页查询入参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BandingRulePageDto extends PageInput {
+
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/banding/dto/BandingTaskClassPageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.banding.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 新生分班任务分页查询入参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BandingTaskClassPageDto extends PageInput {
+
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/banding/dto/BandingTaskPageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.banding.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 新生分班任务分页查询入参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BandingTaskPageDto extends PageInput {
+
+
+}

+ 23 - 0
src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingClassDto.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class UpdateBandingClassDto extends AddBandingTaskClassDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingRuleDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class UpdateBandingRuleDto extends AddBandingRuleDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/banding/dto/UpdateBandingTaskDto.java

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

+ 89 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingRule.java

@@ -0,0 +1,89 @@
+package com.xjrsoft.module.banding.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@TableName("banding_rule")
+@ApiModel(value = "banding_rule", description = "新生分班规则")
+public class BandingRule implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+
+
+}

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

@@ -0,0 +1,110 @@
+package com.xjrsoft.module.banding.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@TableName("banding_task")
+@ApiModel(value = "banding_task", description = "新生分班任务")
+public class BandingTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 年级id
+    */
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+    /**
+    * 分班任务名称
+    */
+    @ApiModelProperty("分班任务名称")
+    private String name;
+
+    /**
+    * bandingTaskRule
+    */
+    @ApiModelProperty("bandingTaskRule子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "bandingTaskId")
+    private List<BandingTaskRule> bandingTaskRuleList;
+    /**
+    * bandingTaskClass
+    */
+    @ApiModelProperty("bandingTaskClass子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "bandingTaskId")
+    private List<BandingTaskClass> bandingTaskClassList;
+
+}

+ 122 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTaskClass.java

@@ -0,0 +1,122 @@
+package com.xjrsoft.module.banding.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 新生分班任务班级配置
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@TableName("banding_task_class")
+@ApiModel(value = "banding_task_class", description = "新生分班任务班级配置")
+public class BandingTaskClass implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 专业方向id
+    */
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+    /**
+    * 班级人数
+    */
+    @ApiModelProperty("班级人数")
+    private Integer number;
+    /**
+    * 班主任id
+    */
+    @ApiModelProperty("班主任id")
+    private Long teacherId;
+    /**
+    * 教室id
+    */
+    @ApiModelProperty("教室id")
+    private Long classroomId;
+    /**
+    * 是否订单班(0:否 1:是)
+    */
+    @ApiModelProperty("是否订单班(0:否 1:是)")
+    private Long isOrderClass;
+    /**
+    * 身高
+    */
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+    /**
+    * 体重
+    */
+    @ApiModelProperty("体重")
+    private BigDecimal weight;
+
+    @ApiModelProperty("分班任务(banding_task)")
+    private Long bandingTaskId;
+
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTaskRule.java

@@ -0,0 +1,89 @@
+package com.xjrsoft.module.banding.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 新生分班任务规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@TableName("banding_task_rule")
+@ApiModel(value = "banding_task_rule", description = "新生分班任务规则")
+public class BandingTaskRule implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 新生分班规则(banding_rule)
+    */
+    @ApiModelProperty("新生分班规则(banding_rule)")
+    private Long bandingRuleId;
+    /**
+    * 分班任务(banding_task)
+    */
+    @ApiModelProperty("分班任务(banding_task)")
+    private Long bandingTaskId;
+
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/banding/mapper/BandingRuleMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.banding.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.banding.entity.BandingRule;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Mapper
+public interface BandingRuleMapper extends MPJBaseMapper<BandingRule> {
+
+}

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

@@ -0,0 +1,19 @@
+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.entity.BandingTaskClass;
+import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 新生分班任务班级配置
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Mapper
+public interface BandingTaskClassMapper extends MPJBaseMapper<BandingTaskClass> {
+    Page<BandingTaskClassPageVo> getPage(Page<BandingTaskClassPageVo> page, BandingTaskClassPageDto dto);
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.banding.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.banding.entity.BandingTask;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Mapper
+public interface BandingTaskMapper extends MPJBaseMapper<BandingTask> {
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskRuleMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.banding.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.banding.entity.BandingTaskRule;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 新生分班任务规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Mapper
+public interface BandingTaskRuleMapper extends MPJBaseMapper<BandingTaskRule> {
+
+}

+ 14 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingRuleService.java

@@ -0,0 +1,14 @@
+package com.xjrsoft.module.banding.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.banding.entity.BandingRule;
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+
+public interface IBandingRuleService extends MPJBaseService<BandingRule> {
+}

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

@@ -0,0 +1,45 @@
+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.entity.BandingTaskClass;
+import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
+
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+
+public interface IBandingTaskClassService extends MPJBaseService<BandingTaskClass> {
+    /**
+    * 新增
+    *
+    * @param bandingTaskClass
+    * @return
+    */
+    Boolean add(BandingTaskClass bandingTaskClass);
+
+    /**
+    * 更新
+    *
+    * @param bandingTaskClass
+    * @return
+    */
+    Boolean update(BandingTaskClass bandingTaskClass);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+
+    Page<BandingTaskClassPageVo> getPage(Page<BandingTaskClassPageVo> page, BandingTaskClassPageDto dto);
+}

+ 39 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingTaskService.java

@@ -0,0 +1,39 @@
+package com.xjrsoft.module.banding.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.banding.entity.BandingTask;
+
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+
+public interface IBandingTaskService extends MPJBaseService<BandingTask> {
+    /**
+    * 新增
+    *
+    * @param bandingTask
+    * @return
+    */
+    Boolean add(BandingTask bandingTask);
+
+    /**
+    * 更新
+    *
+    * @param bandingTask
+    * @return
+    */
+    Boolean update(BandingTask bandingTask);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingRuleServiceImpl.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.banding.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.banding.entity.BandingRule;
+import com.xjrsoft.module.banding.mapper.BandingRuleMapper;
+import com.xjrsoft.module.banding.service.IBandingRuleService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BandingRuleServiceImpl extends MPJBaseServiceImpl<BandingRuleMapper, BandingRule> implements IBandingRuleService {
+}

+ 52 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -0,0 +1,52 @@
+package com.xjrsoft.module.banding.service.impl;
+
+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.entity.BandingTaskClass;
+import com.xjrsoft.module.banding.mapper.BandingTaskClassMapper;
+import com.xjrsoft.module.banding.service.IBandingTaskClassService;
+import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskClassMapper, BandingTaskClass> implements IBandingTaskClassService {
+
+    @Override
+    public Boolean add(BandingTaskClass bandingTaskClass) {
+        bandingTaskClass.setCreateDate(new Date());
+        this.baseMapper.insert(bandingTaskClass);
+        return true;
+    }
+
+    @Override
+    public Boolean update(BandingTaskClass bandingTaskClass) {
+        bandingTaskClass.setModifyDate(new Date());
+        this.baseMapper.updateById(bandingTaskClass);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        this.baseMapper.deleteBatchIds(ids);
+        return true;
+    }
+
+    @Override
+    public Page<BandingTaskClassPageVo> getPage(Page<BandingTaskClassPageVo> page, BandingTaskClassPageDto dto) {
+        return this.baseMapper.getPage(page, dto);
+    }
+}

+ 59 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -0,0 +1,59 @@
+package com.xjrsoft.module.banding.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+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.mapper.BandingTaskClassMapper;
+import com.xjrsoft.module.banding.mapper.BandingTaskMapper;
+import com.xjrsoft.module.banding.mapper.BandingTaskRuleMapper;
+import com.xjrsoft.module.banding.service.IBandingTaskService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper, BandingTask> implements IBandingTaskService {
+    private final BandingTaskMapper bandingTaskBandingTaskMapper;
+
+    private final BandingTaskRuleMapper bandingTaskBandingTaskRuleMapper;
+    private final BandingTaskClassMapper bandingTaskBandingTaskClassMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(BandingTask bandingTask) {
+        bandingTask.setCreateDate(new Date());
+        bandingTaskBandingTaskMapper.insert(bandingTask);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean update(BandingTask bandingTask) {
+        bandingTask.setModifyDate(new Date());
+        bandingTaskBandingTaskMapper.updateById(bandingTask);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        bandingTaskBandingTaskMapper.deleteBatchIds(ids);
+        bandingTaskBandingTaskRuleMapper.delete(Wrappers.lambdaQuery(BandingTaskRule.class).in(BandingTaskRule::getBandingTaskId, ids));
+        bandingTaskBandingTaskClassMapper.delete(Wrappers.lambdaQuery(BandingTaskClass.class).in(BandingTaskClass::getBandingTaskId, ids));
+
+        return true;
+    }
+}

+ 90 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingRulePageVo.java

@@ -0,0 +1,90 @@
+package com.xjrsoft.module.banding.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+* @title: 新生分班规则分页列表出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingRulePageVo {
+
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Date createDate;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("规则名称")
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 招生类型
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("招生类型")
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+
+}

+ 38 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingRuleVo.java

@@ -0,0 +1,38 @@
+package com.xjrsoft.module.banding.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 新生分班规则表单出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingRuleVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+
+
+
+}

+ 47 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskClassPageVo.java

@@ -0,0 +1,47 @@
+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 BandingTaskClassPageVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("班级排序")
+    private Integer sortCode;
+
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+
+    @ApiModelProperty("专业方向")
+    private String majorSetName;
+
+    @ApiModelProperty("班级名称")
+    private String name;
+
+    @ApiModelProperty("班级人数")
+    private Integer number;
+
+    @ApiModelProperty("第一志愿人数")
+    private Integer firstAmbitionCount;
+
+    @ApiModelProperty("第二志愿人数")
+    private Integer secondAmbitionCount;
+
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+
+    @ApiModelProperty("体重")
+    private BigDecimal weight;
+
+}

+ 70 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskClassVo.java

@@ -0,0 +1,70 @@
+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 BandingTaskClassVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 规则名称
+    */
+    @ApiModelProperty("规则名称")
+    private String name;
+    /**
+    * 专业方向id
+    */
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+    /**
+    * 班级人数
+    */
+    @ApiModelProperty("班级人数")
+    private Integer number;
+    /**
+    * 班主任id
+    */
+    @ApiModelProperty("班主任id")
+    private Long teacherId;
+    /**
+    * 教室id
+    */
+    @ApiModelProperty("教室id")
+    private Long classroomId;
+    /**
+    * 是否订单班(0:否 1:是)
+    */
+    @ApiModelProperty("是否订单班(0:否 1:是)")
+    private Long isOrderClass;
+    /**
+    * 身高
+    */
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+    /**
+    * 体重
+    */
+    @ApiModelProperty("体重")
+    private BigDecimal weight;
+
+
+
+}

+ 59 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskPageVo.java

@@ -0,0 +1,59 @@
+package com.xjrsoft.module.banding.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+* @title: 新生分班任务分页列表出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingTaskPageVo {
+
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 年级id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 招生类型
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("招生类型-中文")
+    private String enrollTypeCn;
+
+    /**
+    * 分班任务名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("分班任务名称")
+    private String name;
+
+}

+ 38 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskRuleVo.java

@@ -0,0 +1,38 @@
+package com.xjrsoft.module.banding.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 新生分班任务规则表单出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingTaskRuleVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 新生分班规则(banding_rule)
+    */
+    @ApiModelProperty("新生分班规则(banding_rule)")
+    private Long bandingRuleId;
+    /**
+    * 分班任务(banding_task)
+    */
+    @ApiModelProperty("分班任务(banding_task)")
+    private Long bandingTaskId;
+
+
+
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/banding/vo/BandingTaskVo.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.banding.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 新生分班任务表单出参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class BandingTaskVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 年级id
+    */
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+    /**
+    * 招生类型
+    */
+    @ApiModelProperty("招生类型")
+    private String enrollType;
+    /**
+    * 分班任务名称
+    */
+    @ApiModelProperty("分班任务名称")
+    private String name;
+
+
+    /**
+    * bandingTaskRule
+    */
+    @ApiModelProperty("bandingTaskRule子表")
+    private List<BandingTaskRuleVo> bandingTaskRuleList;
+    /**
+    * bandingTaskClass
+    */
+    @ApiModelProperty("bandingTaskClass子表")
+    private List<BandingTaskClassVo> bandingTaskClassList;
+
+}

+ 16 - 0
src/main/resources/mapper/banding/BandingTaskClassMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.banding.mapper.BandingTaskClassMapper">
+    <select id="getPage" 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 first_ambition_id = t1.major_set_id) AS first_ambition_count,
+        (SELECT COUNT(*) FROM base_new_student WHERE delete_mark = 0 AND second_ambition_id = t1.major_set_id) AS second_ambition_count,
+        t1.height, t1.weight 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
+    </select>
+</mapper>

+ 68 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -3362,4 +3362,72 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+    @Test
+    public void gcBandingTask() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("banding_task");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        mainTable = new TableConfig();
+        mainTable.setTableName("banding_task_rule");//init_sql中的表名
+        mainTable.setIsMain(false);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        mainTable.setRelationField("banding_task_id");//设置外键
+        mainTable.setRelationTableField(GlobalConstant.DEFAULT_PK);//设置外键
+        tableConfigs.add(mainTable);
+
+        mainTable = new TableConfig();
+        mainTable.setTableName("banding_task_class");//init_sql中的表名
+        mainTable.setIsMain(false);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        mainTable.setRelationField("banding_task_id");//设置外键
+        mainTable.setRelationTableField(GlobalConstant.DEFAULT_PK);//设置外键
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("banding");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
+
+    @Test
+    public void gcBandingRule() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("banding_rule");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("banding");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }