浏览代码

Merge branch 'pre'

dzx 1 年之前
父节点
当前提交
1baa9c6315

+ 8 - 5
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -450,14 +450,16 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
                 .distinct()
                 .select(MaterialTaskAssign::getId)
                 .selectAs(MaterialTaskAppendix::getFileId, MaterialTaskAssignListVo::getFileId)
-                .selectAs(File::getFolderId, MaterialTaskAssignListVo::getFolderId)
-                .selectAs(MaterialTaskAppendix::getFileId, MaterialTaskAssignListVo::getFormDataId)
+//                .selectAs(File::getFolderId, MaterialTaskAssignListVo::getFolderId)
+                .select("CASE t4.material_category WHEN 'MT0001' THEN t6.folder_id ELSE t5.file_id END folderId")
+                .select("(select GROUP_CONCAT(DISTINCT b.name) from xjr_user_dept_relation a left join xjr_department b on a.dept_id=b.id where a.user_id=t.user_id) as deptName")
+//                .selectAs(MaterialTaskAppendix::getFileId, MaterialTaskAssignListVo::getFormDataId)
                 .selectAs(MaterialTask::getMaterialCategory, MaterialTaskAssignListVo::getMaterialCategory)
                 .select(XjrUser.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssignListVo.class).contains(x.getProperty()))
                 .select(MaterialTaskAssign.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssignListVo.class).contains(x.getProperty()))
                 .innerJoin(XjrUser.class, XjrUser::getId, MaterialTaskAssign::getUserId, ext -> ext.selectAs(XjrUser::getUserName, MaterialTaskAssignListVo::getUserName))
-                .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, MaterialTypeAssign::getUserId)
-                .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId, ext -> ext.selectAs(Department::getName, MaterialTaskAssignListVo::getDeptName))
+//                .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, MaterialTypeAssign::getUserId)
+//                .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId, ext -> ext.selectAs(Department::getName, MaterialTaskAssignListVo::getDeptName))
                 .leftJoin(MaterialTask.class, MaterialTask::getId, MaterialTaskAssign::getMaterialTaskId)
                 .leftJoin(MaterialTaskAppendix.class, MaterialTaskAppendix::getMaterialTaskId, MaterialTaskAssign::getId)
                 .leftJoin(File.class, File::getId, MaterialTaskAppendix::getFileId)
@@ -465,9 +467,10 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
                 .eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
                 .eq(dto.getState() != null, MaterialTaskAssign::getStatus, dto.getState())
                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
-                .eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
+//                .eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(MaterialTask::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(MaterialTaskAssign::getDeleteMark, DeleteMark.NODELETE.getCode())
+                .eq(MaterialTaskAppendix::getDeleteMark, DeleteMark.NODELETE.getCode())
 //                .select("(\n" +
 //                        "SELECT id FROM xjr_file WHERE id IN (\n" +
 //                        "SELECT file_id FROM material_task_appendix WHERE material_task_id = t.id\n" +

+ 10 - 2
src/main/java/com/xjrsoft/module/room/controller/WfRoomStayOvernightController.java

@@ -116,12 +116,20 @@ public class WfRoomStayOvernightController {
 
     }
 
-    @GetMapping("/export")
+    @PostMapping ("/export-query")
     @ApiOperation(value = "导出")
-    public ResponseEntity<byte[]> exportData(@Valid WfRoomStayOvernightPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+    public ResponseEntity<byte[]> exportData(@Valid @RequestBody WfRoomStayOvernightPageDto dto) {
         MPJLambdaWrapper<WfRoomStayOvernight> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .disableSubLogicDel()
+
+                .like(ObjectUtil.isNotNull(dto.getUserName()),"t1.name",dto.getUserName())
+                .like(ObjectUtil.isNotNull(dto.getClassName()),WfRoomStayOvernight::getClassName,dto.getClassName())
+                .like(ObjectUtil.isNotNull(dto.getGenderName()),WfRoomStayOvernight::getGenderName,dto.getGenderName())
+                .like(ObjectUtil.isNotNull(dto.getStudentId()),WfRoomStayOvernight::getStudentId,dto.getStudentId())
+                .ge(ObjectUtil.isNotNull(dto.getStartTime()),WfRoomStayOvernight::getStartTime,dto.getStartTime())
+                .le(ObjectUtil.isNotNull(dto.getEndTime()),WfRoomStayOvernight::getEndTime,dto.getEndTime())
+
                 .leftJoin(XjrUser.class,XjrUser::getId,WfRoomStayOvernight::getApplicantUserId,ext1->ext1
                         .selectAs(XjrUser::getName,WfRoomStayOvernightVo::getApplicantUserIdCN))
                 .leftJoin(XjrUser.class,XjrUser::getId,WfRoomStayOvernight::getHeadTeacherId,ext2->ext2

+ 12 - 0
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -24,8 +24,11 @@ import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.dto.CourseTablePreCheckDto;
 import com.xjrsoft.module.schedule.dto.ScheduleWeekDto;
 import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
+import com.xjrsoft.module.schedule.dto.WfCourseAdjustDto;
 import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
+import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
+import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
 import com.xjrsoft.module.schedule.util.ScheduleUtil;
 import com.xjrsoft.module.schedule.vo.ClassOptionVo;
 import com.xjrsoft.module.schedule.vo.CourseListVo;
@@ -80,6 +83,7 @@ public class ScheduleController {
     private final IBaseTeacherService baseTeacherService;
     private final ITeacherbaseManagerService teacherService;
     private final IBaseSemesterService semesterService;
+    private final IWfCourseAdjustService courseAdjustService;
 
     @GetMapping(value = "/receive-msg")
     @ApiOperation(value="接收消息")
@@ -387,4 +391,12 @@ public class ScheduleController {
         List<ClassOptionVo> result = courseTableService.getClassListByTeacherId(dto);
         return RT.ok(result);
     }
+
+    @PostMapping(value = "/cancel")
+    @ApiOperation(value="调课顶课的作废")
+    @SaCheckPermission("room:detail")
+    public RT<Boolean> cancel(@Valid WfCourseAdjustDto dto){
+
+        return RT.ok(courseAdjustService.cancel(dto));
+    }
 }

+ 24 - 0
src/main/java/com/xjrsoft/module/schedule/dto/WfCourseAdjustDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.schedule.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 调课顶课申请
+* @Author dzx
+* @Date: 2024年10月14日
+* @Version 1.0
+*/
+@Data
+public class WfCourseAdjustDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/schedule/entity/CourseTableBak.java

@@ -36,7 +36,7 @@ public class CourseTableBak implements Serializable {
     private Long baseSemesterId;
 
     @ApiModelProperty("教师编号(用户表)")
-    private Long teacherId;
+    private String teacherId;
 
     @ApiModelProperty("教师名称")
     private String teacherName;

+ 2 - 1
src/main/java/com/xjrsoft/module/schedule/service/IWfCourseAdjustService.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.schedule.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.schedule.dto.WfCourseAdjustDto;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 
 /**
@@ -12,6 +13,6 @@ import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 
 public interface IWfCourseAdjustService extends MPJBaseService<WfCourseAdjust> {
 
-
+    Boolean cancel(WfCourseAdjustDto dto);
 
 }

+ 66 - 0
src/main/java/com/xjrsoft/module/schedule/service/impl/WfCourseAdjustServiceImpl.java

@@ -1,11 +1,26 @@
 package com.xjrsoft.module.schedule.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.CourseAdjustTypeEnum;
+import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.courseTable.service.ICourseTableService;
+import com.xjrsoft.module.schedule.dto.WfCourseAdjustDto;
+import com.xjrsoft.module.schedule.entity.CourseTableBak;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 import com.xjrsoft.module.schedule.mapper.WfCourseAdjustMapper;
+import com.xjrsoft.module.schedule.service.ICourseTableBakService;
 import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
 * @Author dzx
@@ -15,4 +30,55 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class WfCourseAdjustServiceImpl extends MPJBaseServiceImpl<WfCourseAdjustMapper, WfCourseAdjust> implements IWfCourseAdjustService {
+    
+    private final ICourseTableBakService courseTableBakService;
+    private final ICourseTableService courseTableService;
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean cancel(WfCourseAdjustDto dto) {
+        WfCourseAdjust courseAdjust = this.getById(dto.getId());
+        
+        //查询出备份数据
+        List<CourseTableBak> bakList = courseTableBakService.list(
+                new QueryWrapper<CourseTableBak>().lambda()
+                        .eq(CourseTableBak::getWfCourseAdjustId, dto.getId())
+        );
+        Map<Long, CourseTableBak> bakMap = new HashMap<>();
+        for (CourseTableBak courseTableBak : bakList) {
+            bakMap.put(courseTableBak.getId(), courseTableBak);
+        }
+        List<Long> courseIds = bakList.stream().map(CourseTableBak::getId).collect(Collectors.toList());
+        List<CourseTable> list = courseTableService.listByIds(courseIds);
+        if(CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())){//顶课
+            for (CourseTable courseTable : list) {
+                CourseTableBak tableBak = bakMap.get(courseTable.getId());
+                if(tableBak == null){
+                    continue;
+                }
+                courseTable.setTeacherId(tableBak.getTeacherId());
+                courseTable.setTeacherName(tableBak.getTeacherName());
+                courseTableService.updateById(courseTable);
+            }
+        }else if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())){
+            for (CourseTable courseTable : list) {
+                CourseTableBak tableBak = bakMap.get(courseTable.getId());
+                if(tableBak == null){
+                    continue;
+                }
+                courseTable.setTeacherId(tableBak.getTeacherId());
+                courseTable.setTeacherName(tableBak.getTeacherName());
+                courseTable.setScheduleDate(tableBak.getScheduleDate());
+                courseTable.setTimePeriod(tableBak.getTimePeriod());
+                courseTable.setTimeNumber(tableBak.getTimeNumber());
+                courseTable.setWeek(tableBak.getWeek());
+                courseTable.setWeeks(tableBak.getWeeks());
+                courseTable.setWeeksCn(tableBak.getWeeksCn());
+                courseTableService.updateById(courseTable);
+            }
+        }
+        courseAdjust.setEnabledMark(EnabledMark.DISABLED.getCode());
+        courseAdjust.setModifyDate(new Date());
+        this.updateById(courseAdjust);
+        return true;
+    }
 }