Browse Source

分班接口调整

dzx 1 year ago
parent
commit
ff0e73817c

+ 66 - 0
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskMajorConditionController.java

@@ -0,0 +1,66 @@
+package com.xjrsoft.module.banding.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.banding.dto.BandingTaskPageDto;
+import com.xjrsoft.module.banding.dto.SaveMajorConditionDto;
+import com.xjrsoft.module.banding.entity.BandingTaskMajorCondition;
+import com.xjrsoft.module.banding.service.IBandingTaskMajorConditionService;
+import com.xjrsoft.module.banding.vo.BandingTaskMajorConditionListVo;
+import com.xjrsoft.module.base.entity.BaseMajorSet;
+import com.xjrsoft.module.base.service.IBaseMajorSetService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+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" + "/bandingTaskMajorCondition")
+@Api(value = "/banding"  + "/bandingTaskMajorCondition",tags = "新生分班任务专业限制条件代码")
+@AllArgsConstructor
+public class BandingTaskMajorConditionController {
+
+
+    private final IBandingTaskMajorConditionService conditionService;
+    private final IBaseMajorSetService majorSetService;
+
+    @GetMapping(value = "/list")
+    @ApiOperation(value="专业限制条件列表")
+    @SaCheckPermission("bandingtaskmajorcondition:detail")
+    public RT<List<BandingTaskMajorConditionListVo>> page(@Valid BandingTaskPageDto dto){
+
+        List<BandingTaskMajorConditionListVo> page = majorSetService.selectJoinList(BandingTaskMajorConditionListVo.class,
+                new MPJLambdaWrapper<BaseMajorSet>().disableSubLogicDel()
+                        .select(BandingTaskMajorCondition::getId)
+                        .select(BaseMajorSet.class, x -> VoToColumnUtil.fieldsToColumns(BaseMajorSet.class).contains(x.getProperty()))
+                        .selectAs(BaseMajorSet::getId, BandingTaskMajorConditionListVo::getMajorSetId)
+                        .selectAs(BaseMajorSet::getName, BandingTaskMajorConditionListVo::getMajorSetName)
+                        .leftJoin(BandingTaskMajorCondition.class, BandingTaskMajorCondition::getMajorSetId, BaseMajorSet::getId)
+        );
+        return RT.ok(page);
+    }
+
+
+    @PostMapping("save")
+    @ApiOperation(value = "保存")
+    @SaCheckPermission("bandingtaskmajorcondition:save")
+    public RT<Boolean> add(@Valid @RequestBody SaveMajorConditionDto dto){
+        boolean isSuccess = conditionService.save(dto);
+        return RT.ok(isSuccess);
+    }
+}

+ 0 - 4
src/main/java/com/xjrsoft/module/banding/dto/AutomaticBandingTaskDto.java

@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.List;
 
 
 /**
@@ -21,7 +20,4 @@ public class AutomaticBandingTaskDto implements Serializable {
     @ApiModelProperty("任务id")
     private Long bandingTaskId;
 
-    @ApiModelProperty("各个班级条件")
-    private List<BandingTaskClassConditionDto> classInfo;
-
 }

+ 3 - 3
src/main/java/com/xjrsoft/module/banding/dto/BandingTaskClassConditionDto.java → src/main/java/com/xjrsoft/module/banding/dto/BandingTaskMajorConditionDto.java

@@ -15,10 +15,10 @@ import java.math.BigDecimal;
 */
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class BandingTaskClassConditionDto {
+public class BandingTaskMajorConditionDto {
 
-    @ApiModelProperty("班级id")
-    private Long bandingTaskCassId;
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
 
     @ApiModelProperty("身高限制")
     private BigDecimal height;

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

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+
+/**
+* @title: 新生分班任务分页查询入参
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SaveMajorConditionDto {
+
+    @ApiModelProperty("任务id")
+    private Long bandingTaskId;
+
+    @ApiModelProperty("身高限制")
+    private List<BandingTaskMajorConditionDto> conditionList;
+
+}

+ 74 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTaskMajorCondition.java

@@ -0,0 +1,74 @@
+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_major_condition")
+@ApiModel(value = "banding_task_major_condition", description = "新生分班任务专业限制条件")
+public class BandingTaskMajorCondition 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("年级id")
+    private Long majorSetId;
+
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+
+    @ApiModelProperty("分数")
+    private BigDecimal score;
+
+    @ApiModelProperty("任务id")
+    private Long bandingTaskId;
+}

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

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

+ 24 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingTaskMajorConditionService.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.banding.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.banding.dto.SaveMajorConditionDto;
+import com.xjrsoft.module.banding.entity.BandingTaskMajorCondition;
+
+import java.util.List;
+
+/**
+* @title: 新生分班规则
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+
+public interface IBandingTaskMajorConditionService extends MPJBaseService<BandingTaskMajorCondition> {
+    Boolean add(BandingTaskMajorCondition majorCondition);
+
+    Boolean update(BandingTaskMajorCondition majorCondition);
+
+    Boolean delete(List<Long> ids);
+
+    Boolean save(SaveMajorConditionDto dto);
+}

+ 68 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskMajorConditionServiceImpl.java

@@ -0,0 +1,68 @@
+package com.xjrsoft.module.banding.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.banding.dto.BandingTaskMajorConditionDto;
+import com.xjrsoft.module.banding.dto.SaveMajorConditionDto;
+import com.xjrsoft.module.banding.entity.BandingTaskMajorCondition;
+import com.xjrsoft.module.banding.mapper.BandingTaskMajorConditionMapper;
+import com.xjrsoft.module.banding.service.IBandingTaskMajorConditionService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BandingTaskMajorConditionServiceImpl extends MPJBaseServiceImpl<BandingTaskMajorConditionMapper, BandingTaskMajorCondition> implements IBandingTaskMajorConditionService {
+    @Override
+    public Boolean add(BandingTaskMajorCondition majorCondition) {
+        this.baseMapper.insert(majorCondition);
+        return true;
+    }
+
+    @Override
+    public Boolean update(BandingTaskMajorCondition majorCondition) {
+        this.baseMapper.updateById(majorCondition);
+        return true;
+    }
+
+    @Override
+    public Boolean delete(List<Long> ids) {
+        this.baseMapper.deleteBatchIds(ids);
+        return true;
+    }
+
+    @Override
+    public Boolean save(SaveMajorConditionDto dto) {
+        this.baseMapper.delete(
+                new QueryWrapper<BandingTaskMajorCondition>().lambda()
+                        .eq(BandingTaskMajorCondition::getBandingTaskId, dto.getBandingTaskId())
+        );
+        List<BandingTaskMajorCondition> dataList = new ArrayList<>();
+        Date createDate = new Date();
+        for (BandingTaskMajorConditionDto condition : dto.getConditionList()) {
+            dataList.add(
+                    new BandingTaskMajorCondition(){{
+                        setBandingTaskId(dto.getBandingTaskId());
+                        setHeight(condition.getHeight());
+                        setScore(condition.getScore());
+                        setMajorSetId(condition.getMajorSetId());
+                        setCreateDate(createDate);
+                    }}
+            );
+        }
+        if(!dataList.isEmpty()){
+            this.saveBatch(dataList);
+        }
+        return true;
+    }
+}

+ 16 - 5
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -8,18 +8,20 @@ import com.xjrsoft.common.enums.GenderDictionaryEnum;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.AutomaticBandingTaskDto;
-import com.xjrsoft.module.banding.dto.BandingTaskClassConditionDto;
+import com.xjrsoft.module.banding.dto.BandingTaskMajorConditionDto;
 import com.xjrsoft.module.banding.dto.SureBandingTaskDto;
 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.BandingTaskClassStudent;
+import com.xjrsoft.module.banding.entity.BandingTaskMajorCondition;
 import com.xjrsoft.module.banding.entity.BandingTaskRule;
 import com.xjrsoft.module.banding.mapper.BandingRuleMapper;
 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.IBandingTaskClassStudentService;
+import com.xjrsoft.module.banding.service.IBandingTaskMajorConditionService;
 import com.xjrsoft.module.banding.service.IBandingTaskService;
 import com.xjrsoft.module.outint.vo.IdCountVo;
 import com.xjrsoft.module.student.entity.BaseNewStudent;
@@ -52,6 +54,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
     private final BandingTaskClassMapper taskClassMapper;
     private final IBaseNewStudentService newStudentService;
     private final IBandingTaskClassStudentService classStudentService;
+    private final IBandingTaskMajorConditionService conditionService;
 
 
     @Override
@@ -157,10 +160,18 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
                 classLimitMap.put(bandingTaskClass.getId(), majorLimitMap.get(bandingTaskClass.getMajorSetId()));
             }
         }
+        //查询每个专业的限制条件
+        List<BandingTaskMajorCondition> list = conditionService.list(
+                new QueryWrapper<BandingTaskMajorCondition>().lambda()
+                        .eq(BandingTaskMajorCondition::getBandingTaskId, dto.getBandingTaskId())
+        );
+        Map<Long, BandingTaskMajorCondition> classConditionMap = new HashMap<>();
+        for (BandingTaskMajorCondition conditionDto : list) {
+            classConditionMap.put(conditionDto.getMajorSetId(), conditionDto);
+        }
+
+        if(ruleCodes.contains("BR0002")){
 
-        Map<Long, BandingTaskClassConditionDto> classConditionMap = new HashMap<>();
-        for (BandingTaskClassConditionDto classConditionDto : dto.getClassInfo()) {
-            classConditionMap.put(classConditionDto.getBandingTaskCassId(), classConditionDto);
         }
         //存班级和学生的关系
         Map<Long, Long> studentClassMap = new HashMap<>();
@@ -219,7 +230,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
                 }
 
                 List<Boolean> conditionList = new ArrayList<>();
-                BandingTaskClassConditionDto condition = classConditionMap.get(taskClass.getId());
+                BandingTaskMajorCondition condition = classConditionMap.get(taskClass.getMajorSetId());
                 if(condition.getHeight() !=null && newStudent.getHeight() != null && newStudent.getHeight().compareTo(condition.getHeight()) >= 0 ){
                     conditionList.add(true);
                 }else if(condition.getHeight() !=null && newStudent.getHeight() != null && newStudent.getHeight().compareTo(condition.getHeight()) < 0){

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

@@ -0,0 +1,38 @@
+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 BandingTaskMajorConditionListVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("班级排序")
+    private Integer sortCode;
+
+    @ApiModelProperty("任务id")
+    private Long bandingTaskId;
+
+    @ApiModelProperty("专业方向id")
+    private Long majorSetId;
+
+    @ApiModelProperty("专业方向")
+    private String majorSetName;
+
+    @ApiModelProperty("身高")
+    private BigDecimal height;
+
+    @ApiModelProperty("成绩")
+    private BigDecimal score;
+
+}

+ 2 - 2
src/main/java/com/xjrsoft/module/base/mapper/BaseMajorSetMapper.java

@@ -1,6 +1,6 @@
 package com.xjrsoft.module.base.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
  * @since 2023-09-02 04:52:58
  */
 @Mapper
-public interface BaseMajorSetMapper extends BaseMapper<BaseMajorSet> {
+public interface BaseMajorSetMapper extends MPJBaseMapper<BaseMajorSet> {
 
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/base/service/IBaseMajorSetService.java

@@ -1,6 +1,6 @@
 package com.xjrsoft.module.base.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
 
 /**
@@ -11,6 +11,6 @@ import com.xjrsoft.module.base.entity.BaseMajorSet;
  * @author baomidou
  * @since 2023-09-02 04:52:58
  */
-public interface IBaseMajorSetService extends IService<BaseMajorSet> {
+public interface IBaseMajorSetService extends MPJBaseService<BaseMajorSet> {
 
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/base/service/impl/BaseMajorSetServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.base.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
 import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
 import com.xjrsoft.module.base.service.IBaseMajorSetService;
@@ -15,6 +16,6 @@ import org.springframework.stereotype.Service;
  * @since 2023-09-02 04:52:58
  */
 @Service
-public class BaseMajorSetServiceImpl extends ServiceImpl<BaseMajorSetMapper, BaseMajorSet> implements IBaseMajorSetService {
+public class BaseMajorSetServiceImpl extends MPJBaseServiceImpl<BaseMajorSetMapper, BaseMajorSet> implements IBaseMajorSetService {
 
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/job/InsertOutInRecordTask.java

@@ -20,7 +20,7 @@ public class InsertOutInRecordTask {
 
     OutInRecordUtil out_in_recordUtil = new OutInRecordUtil();
 
-    @Scheduled(cron = "* */60 * * * ?")
+    @Scheduled(cron = "* */30 * * * ?")
     public void RefreshConnectionPool() {
         String active = SpringUtil.getActiveProfile();
         if(!"prod".equals(active)){