浏览代码

分班班级调整

dzx 9 月之前
父节点
当前提交
705c1cd99a

+ 19 - 41
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java

@@ -6,6 +6,7 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.AddBandingTaskClassDto;
@@ -70,6 +71,7 @@ public class BandingTaskClassController {
     @GetMapping(value = "/list")
     @ApiOperation(value="新生分班任务班级配置列表")
     @SaCheckPermission("bandingtask:detail")
+    @XjrLog(value = "新生分班任务班级配置列表")
     public RT<List<BandingTaskClassPageVo>> list(@Valid BandingTaskClassPageDto dto){
 
         List<BandingTaskClassPageVo> list = bandingTaskClassService.getList(dto);
@@ -79,6 +81,7 @@ public class BandingTaskClassController {
     @GetMapping(value = "/class-student")
     @ApiOperation(value="分班后的学生列表")
     @SaCheckPermission("bandingtask:detail")
+    @XjrLog(value = "分班后的学生列表")
     public RT<List<BandingTaskClassStudentListVo>> classStudent(@Valid BandingTaskClassStudentPageDto dto){
         List<BandingTaskClassStudentListVo> list = bandingTaskClassService.classStudent(dto);
         return RT.ok(list);
@@ -87,6 +90,7 @@ public class BandingTaskClassController {
     @GetMapping(value = "/class-sure")
     @ApiOperation(value="分班确认列表")
     @SaCheckPermission("bandingtask:detail")
+    @XjrLog(value = "分班确认列表")
     public RT<List<BandingTaskClassSureListVo>> classSure(@Valid BandingTaskClassStudentPageDto dto){
         List<BandingTaskClassSureListVo> list = bandingTaskClassService.getClassSure(dto);
         return RT.ok(list);
@@ -95,6 +99,7 @@ public class BandingTaskClassController {
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询新生分班任务信息")
     @SaCheckPermission("bandingTaskClass:detail")
+    @XjrLog(value = "根据id查询新生分班任务信息")
     public RT<BandingTaskClassVo> info(@RequestParam Long id){
         BandingTaskClass bandingTaskClass = bandingTaskClassService.getById(id);
         if (bandingTaskClass == null) {
@@ -107,6 +112,7 @@ public class BandingTaskClassController {
     @PostMapping
     @ApiOperation(value = "新增新生分班")
     @SaCheckPermission("bandingTaskClass:add")
+    @XjrLog(value = "新增新生分班")
     public RT<Boolean> add(@Valid @RequestBody List<AddBandingTaskClassDto> dtoList){
         List<BandingTaskClass> dataList = new ArrayList<>();
         List<String> errorList = new ArrayList<>();
@@ -140,54 +146,16 @@ public class BandingTaskClassController {
     @PutMapping
     @ApiOperation(value = "批量新增或者修改新生分班")
     @SaCheckPermission("bandingTaskClass:edit")
+    @XjrLog(value = "批量新增或者修改新生分班")
     public RT<Boolean> update(@Valid @RequestBody List<UpdateBandingClassDto> dtoList){
-        List<BandingTaskClass> insList = new ArrayList<>();
-        List<BandingTaskClass> updList = new ArrayList<>();
-
-        List<BandingTaskClass> updNullList = new ArrayList<>();
-        List<String> errorList = new ArrayList<>();
-        for (UpdateBandingClassDto dto : dtoList) {
-            if(dto.getSortCode() != null){
-                List<BandingTaskClass> list = bandingTaskClassService.list(
-                        new QueryWrapper<BandingTaskClass>().lambda()
-                                .eq(BandingTaskClass::getSortCode, dto.getSortCode())
-                                .eq(BandingTaskClass::getBandingTaskId, dto.getBandingTaskId())
-                                .ne(dto.getId() != null,BandingTaskClass::getId, dto.getId())
-                );
-                if(!list.isEmpty()){
-                    errorList.add(dto.getName());
-                }
-            }
-
-            BandingTaskClass bandingTask = BeanUtil.toBean(dto, BandingTaskClass.class);
-            if(bandingTask.getId() != null){
-                bandingTask.setModifyDate(new Date());
-                if(bandingTask.getSortCode() == null){
-                    updNullList.add(bandingTask);
-                }else{
-                    updList.add(bandingTask);
-                }
-            }else{
-                bandingTask.setCreateDate(new Date());
-                insList.add(bandingTask);
-            }
-        }
-        if(!errorList.isEmpty()){
-            return RT.error(errorList.toString().replace("[", "").replace("]", "") + ",分班排序重复");
-        }
-
-        if(!updNullList.isEmpty()){
-            bandingTaskClassService.updateNull(updNullList);
-        }
-
-        boolean saveBatch = bandingTaskClassService.saveBatch(insList);
-        boolean isSuccess = bandingTaskClassService.updateBatchById(updList);
+        Boolean isSuccess = bandingTaskClassService.saveClass(dtoList);
         return RT.ok(isSuccess);
     }
 
     @DeleteMapping
     @ApiOperation(value = "删除新生分班")
     @SaCheckPermission("bandingTaskClass:delete")
+    @XjrLog(value = "删除新生分班")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
         if(!ids.isEmpty()){
             classStudentService.remove(
@@ -201,6 +169,7 @@ public class BandingTaskClassController {
     }
     @PostMapping("/import")
     @ApiOperation(value = "导入")
+    @XjrLog(value = "导入")
     public RT<Boolean> importData(@RequestParam Long bandingTaskId, @RequestParam MultipartFile file) throws IOException {
         List<Map<Integer, Object>> excelDataList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(3).doReadSync();
         Boolean result = bandingTaskClassService.importData(bandingTaskId, excelDataList);
@@ -209,6 +178,7 @@ public class BandingTaskClassController {
 
     @PostMapping("/export-query")
     @ApiOperation(value = "导出学生列表")
+    @XjrLog(value = "导出学生列表")
     public ResponseEntity<byte[]> exportData(@Valid @RequestBody BandingTaskClassStudentPageDto dto) {
         List<BandingTaskClassStudentListVo> listVos = bandingTaskClassService.classStudent(dto);
         List<BandingTaskClassExcelVo> list = BeanUtil.copyToList(listVos, BandingTaskClassExcelVo.class);
@@ -221,6 +191,7 @@ public class BandingTaskClassController {
     @PostMapping("/reset")
     @ApiOperation(value = "重置功能")
     @SaCheckPermission("bandingTaskClass:add")
+    @XjrLog(value = "重置功能")
     public RT<Boolean> reset(@Valid @RequestBody SureBandingTaskDto dto){
         boolean isSuccess = bandingTaskClassService.reset(dto.getBandingTaskId());
         return RT.ok(isSuccess);
@@ -230,6 +201,7 @@ public class BandingTaskClassController {
     @PostMapping("/change-class")
     @ApiOperation(value = "调整班级")
     @SaCheckPermission("bandingTaskClass:change-class")
+    @XjrLog(value = "调整班级")
     public RT<Boolean> changeClass(@Valid @RequestBody ChangeClassDto dto){
         boolean isSuccess = classStudentService.changeClass(dto);
         return RT.ok(isSuccess);
@@ -237,6 +209,7 @@ public class BandingTaskClassController {
 
     @PostMapping("/remove-student")
     @ApiOperation(value = "移出学生")
+    @XjrLog(value = "移出学生")
     @SaCheckPermission("bandingTaskClass:remove-student")
     public RT<Boolean> removeStudent(@Valid @RequestBody ChangeClassDto dto){
         boolean isSuccess = classStudentService.removeStudent(dto);
@@ -246,6 +219,7 @@ public class BandingTaskClassController {
     @PostMapping("/insert-student")
     @ApiOperation(value = "移入学生")
     @SaCheckPermission("bandingTaskClass:insert-student")
+    @XjrLog(value = "移入学生")
     public RT<Boolean> insertStudent(@Valid @RequestBody ChangeClassDto dto){
         boolean isSuccess = classStudentService.insertStudent(dto);
         return RT.ok(isSuccess);
@@ -254,6 +228,7 @@ public class BandingTaskClassController {
     @GetMapping("/satisfy-student")
     @ApiOperation(value = "满足学生")
     @SaCheckPermission("bandingTaskClass:satisfy-student")
+    @XjrLog(value = "满足学生")
     public RT<List<BaseNewStudentPageDto>> satisfyStudent(@Valid StudentDto dto){
         List<BaseNewStudentPageDto> list = classStudentService.satisfyStudent(dto);
         return RT.ok(list);
@@ -262,6 +237,7 @@ public class BandingTaskClassController {
     @GetMapping("/surplus-student")
     @ApiOperation(value = "剩余学生")
     @SaCheckPermission("bandingTaskClass:surplus-student")
+    @XjrLog(value = "剩余学生")
     public RT<List<BaseNewStudentPageDto>> surplusStudent(@Valid StudentDto dto){
         List<BaseNewStudentPageDto> list = classStudentService.surplusStudent(dto);
         return RT.ok(list);
@@ -271,6 +247,7 @@ public class BandingTaskClassController {
     @GetMapping("/classListParam")
     @ApiOperation(value = "根据专业和年级查询班级")
     @SaCheckPermission("bandingTaskClass:surplus-student")
+    @XjrLog(value = "根据专业和年级查询班级")
     public RT<List<BandingTaskClassVo>> classListParam(@Valid BandingTaskClassListDto dto){
         List<BandingTaskClassVo> list = bandingTaskClassService.selectJoinList(BandingTaskClassVo.class,
                 new MPJLambdaWrapper<BandingTaskClass>()
@@ -286,6 +263,7 @@ public class BandingTaskClassController {
     @PostMapping(value = "/change-status")
     @ApiOperation(value="修改状态")
     @SaCheckPermission("officebuild:detail")
+    @XjrLog(value = "修改状态")
     public RT<Boolean> changeStatus(@Valid @RequestBody ChangeClassStatusDto dto) throws Exception {
         BandingTaskClass taskClass = bandingTaskClassService.getById(dto.getId());
         taskClass.setStatus(dto.getStatus());

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

@@ -3,6 +3,7 @@ package com.xjrsoft.module.banding.service;
 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.dto.UpdateBandingClassDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 import com.xjrsoft.module.banding.vo.BandingTaskClassStudentListVo;
@@ -55,4 +56,7 @@ public interface IBandingTaskClassService extends MPJBaseService<BandingTaskClas
     Boolean importData(Long bandingTaskId, List<Map<Integer, Object>> excelDataList);
 
     Boolean updateNull(List<BandingTaskClass> updNullList);
+
+    Boolean saveClass(List<UpdateBandingClassDto> dtoList);
+
 }

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

@@ -1,14 +1,18 @@
 package com.xjrsoft.module.banding.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.YesOrNoEnum;
+import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
 import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
+import com.xjrsoft.module.banding.dto.UpdateBandingClassDto;
 import com.xjrsoft.module.banding.entity.BandingTask;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
@@ -19,8 +23,10 @@ import com.xjrsoft.module.banding.service.IBandingTaskClassService;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 import com.xjrsoft.module.banding.vo.BandingTaskClassStudentListVo;
 import com.xjrsoft.module.banding.vo.BandingTaskClassSureListVo;
+import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseClassroom;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.base.service.IBaseClassroomService;
 import com.xjrsoft.module.base.service.IBaseMajorSetService;
 import com.xjrsoft.module.organization.entity.User;
@@ -56,6 +62,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
     private final IUserService userService;
     private final IBaseMajorSetService majorSetService;
     private final DictionarydetailMapper detailMapper;
+    private final BaseClassMapper classMapper;
     @Override
     public Boolean add(BandingTaskClass bandingTaskClass) {
         bandingTaskClass.setCreateDate(new Date());
@@ -187,6 +194,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean updateNull(List<BandingTaskClass> updNullList) {
         for (BandingTaskClass taskClass : updNullList) {
             UpdateWrapper<BandingTaskClass> updateWrapper = new UpdateWrapper<>();
@@ -197,4 +205,56 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
 
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean saveClass(List<UpdateBandingClassDto> dtoList) {
+        List<BandingTaskClass> insList = new ArrayList<>();//新增班级
+        List<BandingTaskClass> updList = new ArrayList<>();//修改班级
+        List<BandingTaskClass> updNullList = new ArrayList<>();
+        List<String> errorList = new ArrayList<>();
+
+        classMapper.selectList(
+                new QueryWrapper<BaseClass>().lambda()
+                        .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+        );
+
+
+        for (UpdateBandingClassDto dto : dtoList) {
+            if(dto.getSortCode() != null){
+                List<BandingTaskClass> list = this.list(
+                        new QueryWrapper<BandingTaskClass>().lambda()
+                                .eq(BandingTaskClass::getSortCode, dto.getSortCode())
+                                .eq(BandingTaskClass::getBandingTaskId, dto.getBandingTaskId())
+                                .ne(dto.getId() != null,BandingTaskClass::getId, dto.getId())
+                );
+                if(!list.isEmpty()){
+                    errorList.add(dto.getName());
+                }
+            }
+
+            BandingTaskClass bandingTask = BeanUtil.toBean(dto, BandingTaskClass.class);
+            if(bandingTask.getId() != null){
+                bandingTask.setModifyDate(new Date());
+                if(bandingTask.getSortCode() == null){
+                    updNullList.add(bandingTask);
+                }else{
+                    updList.add(bandingTask);
+                }
+            }else{
+                bandingTask.setCreateDate(new Date());
+                insList.add(bandingTask);
+            }
+        }
+        if(!errorList.isEmpty()){
+            throw new MyException(errorList.toString().replace("[", "").replace("]", "") + ",分班排序重复");
+        }
+
+        if(!updNullList.isEmpty()){
+            this.updateNull(updNullList);
+        }
+
+        this.saveBatch(insList);
+        return this.updateBatchById(updList);
+    }
 }

+ 4 - 6
src/main/java/com/xjrsoft/module/job/BaseNewStudentTask.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.job;
 
-import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
@@ -118,7 +117,6 @@ public class BaseNewStudentTask {
                         .eq(BaseMajorSet::getDeleteMark, DeleteMark.NODELETE.getCode())
                         .eq(BaseMajorSet::getEnabledMark, EnabledMark.ENABLED.getCode())
         );
-        Map<String, Long> majorSetMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getCode, BaseMajorSet::getId));
         Map<String, Long> majorSetNameMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getName, BaseMajorSet::getId));
 
         //循环攀宝的数据,准备更新到新生表中
@@ -142,8 +140,8 @@ public class BaseNewStudentTask {
                 existsNewStudent.setMobile(feeobjupdate.getTelephone());
                 existsNewStudent.setFamilyMobile(feeobjupdate.getJzlxdh());
                 existsNewStudent.setFamilyAddress(feeobjupdate.getAddress());
-                existsNewStudent.setFirstAmbition(majorSetMap.get(feeobjupdate.getSpeccode()));
-                existsNewStudent.setFirstAmbitionId(majorSetMap.get(feeobjupdate.getSpeccode()));
+                existsNewStudent.setFirstAmbition(majorSetNameMap.get(feeobjupdate.getSpecname()));
+                existsNewStudent.setFirstAmbitionId(majorSetNameMap.get(feeobjupdate.getSpecname()));
                 existsNewStudent.setSecondAmbition(majorSetNameMap.get(feeobjupdate.getZytjspec()));
                 existsNewStudent.setSecondAmbitionId(majorSetNameMap.get(feeobjupdate.getZytjspec()));
                 existsNewStudent.setGender(GenderDictionaryEnum.getCode(feeobjupdate.getSex()));
@@ -171,8 +169,8 @@ public class BaseNewStudentTask {
                         setMobile(feeobjupdate.getTelephone());
                         setFamilyMobile(feeobjupdate.getJzlxdh());
                         setFamilyAddress(feeobjupdate.getAddress());
-                        setFirstAmbition(majorSetMap.get(feeobjupdate.getSpeccode()));
-                        setFirstAmbitionId(majorSetMap.get(feeobjupdate.getSpeccode()));
+                        setFirstAmbition(majorSetNameMap.get(feeobjupdate.getSpecname()));
+                        setFirstAmbitionId(majorSetNameMap.get(feeobjupdate.getSpecname()));
                         setSecondAmbition(majorSetNameMap.get(feeobjupdate.getZytjspec()));
                         setSecondAmbitionId(majorSetNameMap.get(feeobjupdate.getZytjspec()));
                         setGender(GenderDictionaryEnum.getCode(feeobjupdate.getSex()));