Browse Source

字典管理删除逻辑更改

caozixuan 3 years ago
parent
commit
870367b6a5

+ 1 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicStudentServiceImpl.java

@@ -87,13 +87,7 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
         if (idList.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
         }
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        UpdateWrapper<BasicStudent> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda()
-                .set(BasicStudent::getEnable, false)
-                .set(BasicStudent::getUpdateId, sysUser.getId())
-                .in(BasicStudent::getId, idList);
-        return this.update(updateWrapper);
+        return this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId,idList));
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 6 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -144,8 +144,12 @@ public class BasicCourseController {
     @ApiOperation(value = "课程管理-批量删除(逻辑)")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result deleteBasicCampus(@ApiParam(value = "选择的要删除的课程id集合",required = true) @RequestParam List<Long> idList) {
-        return ResultUtil.ok(basicCourseService.removeBasicCourseBatch(idList));
+    public Result deleteBasicCampus(@ApiParam(value = "选择的要删除的课程id集合",required = true) @RequestParam List<Long> idList,
+                                    @ApiParam(value = "启用/禁用(默认禁用)") @RequestParam(required = false) Boolean enable) {
+        if (Objects.isNull(enable)){
+            enable = false;
+        }
+        return ResultUtil.ok(basicCourseService.removeBasicCourseBatch(idList,enable));
     }
 
     @ApiOperation(value = "课程基本信息管理-批量导入(异步)")

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicUserCourse.java

@@ -49,6 +49,10 @@ public class BasicUserCourse extends BaseEntity implements Serializable {
     @TableField("clazz_id")
     private Long clazzId;
 
+    @ApiModelProperty(value = "是否启用?1-是 ;0-否")
+    @TableField("enable")
+    private Boolean enable;
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -92,4 +96,12 @@ public class BasicUserCourse extends BaseEntity implements Serializable {
     public void setClazzId(Long clazzId) {
         this.clazzId = clazzId;
     }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
 }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicCampusService.java

@@ -31,7 +31,7 @@ public interface BasicCampusService extends IService<BasicCampus> {
     Long saveBasicCampus(BasicCampusParams basicCampusParams);
 
     /**
-     * 根据校区id删除校区(逻辑删除)
+     * 根据校区id删除校区(物理删除)
      * @param id 要删除的校区主键
      * @return 是否成功
      */

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicCourseService.java

@@ -74,9 +74,10 @@ public interface BasicCourseService extends IService<BasicCourse> {
     /**
      * 批量删除课程基本信息(逻辑)
      * @param idList 要删除的课程主键集合
+     * @param enable 启用/禁用标志
      * @return 是否删除成功
      */
-    Boolean removeBasicCourseBatch(List<Long> idList);
+    Boolean removeBasicCourseBatch(List<Long> idList,Boolean enable);
 
     /**
      * 执行批量导入课程逻辑

+ 2 - 9
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCampusServiceImpl.java

@@ -14,7 +14,6 @@ import com.qmth.teachcloud.common.mapper.BasicCampusMapper;
 import com.qmth.teachcloud.common.service.BasicCampusService;
 import com.qmth.teachcloud.common.service.BasicClazzService;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import org.omg.CORBA.OBJ_ADAPTER;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -102,15 +101,9 @@ public class BasicCampusServiceImpl extends ServiceImpl<BasicCampusMapper, Basic
     public Boolean removeBasicCampusById(Long id) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getCampusId,id)).size() > 0){
-            throw ExceptionResultEnum.ERROR.exception("课程中绑定了要删除的校区,无法删除");
+            throw ExceptionResultEnum.ERROR.exception("基础班级中绑定了要删除的校区,无法删除");
         }
-
-        UpdateWrapper<BasicCampus> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(BasicCampus::getEnable,false)
-                .set(BasicCampus::getOrgId,sysUser.getId())
-                .set(BasicCampus::getUpdateId,sysUser.getUpdateId())
-                .eq(BasicCampus::getId,id);
-        return this.update(updateWrapper);
+        return this.removeById(id);
     }
 
     @Override

+ 12 - 9
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicClazzServiceImpl.java

@@ -80,7 +80,7 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
             for (Map<Object, Object> map : mapList) {
                 clazzNames.append(map.get("clazzName")).append(",");
             }
-            throw ExceptionResultEnum.ERROR.exception("【班级】 : " + clazzNames.substring(0,clazzNames.length() - 1) + "生成了考务文件,无法删除");
+            throw ExceptionResultEnum.ERROR.exception("【班级】 : " + clazzNames.substring(0,clazzNames.length() - 1) + "生成了未结束的印刷任务,无法删除");
         }
 
         // 异常处理
@@ -89,11 +89,14 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
         List<BasicStudent> basicStudentCheck = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getEnable,true).in(BasicStudent::getClazzId,idList));
         if (basicStudentCheck.size() > 0){
             Set<Long> ids = basicStudentCheck.stream().map(BasicStudent::getClazzId).collect(Collectors.toSet());
-            List<String> exStudentClazz = this.list(new QueryWrapper<BasicClazz>().lambda().in(BasicClazz::getId,ids)).stream().map(BasicClazz::getClazzName).collect(Collectors.toList());
+            List<String> exStudentClazz = this.list(new QueryWrapper<BasicClazz>().lambda()
+                    .in(BasicClazz::getId,ids)).stream().map(BasicClazz::getClazzName).collect(Collectors.toList());
             errorStudent = StringUtils.join(exStudentClazz,',');
         }
 
-        List<BasicUserCourse> basicUserCourseCheck = basicUserCourseService.list(new QueryWrapper<BasicUserCourse>().lambda().in(BasicUserCourse::getClazzId,idList));
+        List<BasicUserCourse> basicUserCourseCheck = basicUserCourseService.list(new QueryWrapper<BasicUserCourse>().lambda()
+                .in(BasicUserCourse::getClazzId,idList)
+                .eq(BasicUserCourse::getEnable,true));
         if (basicUserCourseCheck.size() > 0){
             Set<Long> ids = basicUserCourseCheck.stream().map(BasicUserCourse::getClazzId).collect(Collectors.toSet());
             List<String> exUserCourseClazz = this.list(new QueryWrapper<BasicClazz>().lambda().in(BasicClazz::getId,ids)).stream().map(BasicClazz::getClazzName).collect(Collectors.toList());
@@ -108,12 +111,12 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
             throw ExceptionResultEnum.ERROR.exception("课程已绑定了要删除的【班级】 : " + errorCourse);
         }
 
-        // 逻辑删除
-        UpdateWrapper<BasicClazz> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(BasicClazz::getEnable, false)
-                .set(BasicClazz::getUpdateId, sysUser.getUpdateId())
-                .in(BasicClazz::getId, idList);
-        return this.update(updateWrapper);
+        // 物理删除
+        // 删除课程班级绑定关系
+        basicUserCourseService.remove(new QueryWrapper<BasicUserCourse>().lambda()
+                .eq(BasicUserCourse::getEnable,false)
+                .in(BasicUserCourse::getClazzId,idList));
+        return this.removeByIds(idList);
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 26 - 20
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -153,36 +153,42 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Boolean removeBasicCourseBatch(List<Long> idList) {
+    public Boolean removeBasicCourseBatch(List<Long> idList,Boolean enable) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         if (idList.size() == 0) {
-            throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
+            throw ExceptionResultEnum.ERROR.exception("请选择要目标");
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        // 业务判断
-        Set<String> courseCodeSet = idList.stream().map(e -> {
-            BasicCourse basicCourse = this.getById(e);
-            if (Objects.isNull(basicCourse)){
-                throw ExceptionResultEnum.ERROR.exception("未找到课程");
-            }
-            return basicCourse.getCode();
-        }).collect(Collectors.toSet());
-        List<Map<String,Object>> mapList = basicCourseMapper.findExamTaskByCourseCode(schoolId,courseCodeSet);
-        if (mapList.size() > 0){
-            StringBuilder courseNames = new StringBuilder();
-            for (Map<String, Object> map : mapList) {
-                courseNames.append(map.get("courseName")).append(",");
+        if (!enable){
+            // 批量禁用判断
+            // 业务判断
+            Set<String> courseCodeSet = idList.stream().map(e -> {
+                BasicCourse basicCourse = this.getById(e);
+                if (Objects.isNull(basicCourse)){
+                    throw ExceptionResultEnum.ERROR.exception("未找到课程");
+                }
+                return basicCourse.getCode();
+            }).collect(Collectors.toSet());
+            List<Map<String,Object>> mapList = basicCourseMapper.findExamTaskByCourseCode(schoolId,courseCodeSet);
+            if (mapList.size() > 0){
+                StringBuilder courseNames = new StringBuilder();
+                for (Map<String, Object> map : mapList) {
+                    courseNames.append(map.get("courseName")).append(",");
+                }
+                throw ExceptionResultEnum.ERROR.exception("【课程】 : " + courseNames.substring(0,courseNames.length() - 1) + " 已经生成了命题任务,不允许禁用");
             }
-            throw ExceptionResultEnum.ERROR.exception("【课程】 : " + courseNames.substring(0,courseNames.length() - 1) + " 已经生成了命题任务,不允许删除");
         }
-
-        basicUserCourseService.remove(new QueryWrapper<BasicUserCourse>().lambda().in(BasicUserCourse::getCourseId, idList).eq(BasicUserCourse::getSchoolId, sysUser.getSchoolId()));
+        // 课程批量启用禁用
+        basicUserCourseService.update(new UpdateWrapper<BasicUserCourse>().lambda()
+                .in(BasicUserCourse::getCourseId, idList)
+                .eq(BasicUserCourse::getSchoolId,sysUser.getSchoolId())
+                .set(BasicUserCourse::getEnable,enable)
+                .set(BasicUserCourse::getUpdateId, sysUser.getId()));
 
         UpdateWrapper<BasicCourse> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda()
-                .set(BasicCourse::getEnable, false)
+                .set(BasicCourse::getEnable, enable)
                 .in(BasicCourse::getId, idList)
-                .set(BasicCourse::getOrgId, sysUser.getOrgId())
                 .set(BasicCourse::getUpdateId, sysUser.getId());
 
         return this.update(updateWrapper);

+ 7 - 4
teachcloud-common/src/main/resources/mapper/BasicClazzMapper.xml

@@ -39,17 +39,20 @@
     </select>
     <select id="findExamTaskPrintByClazzIdSet" resultType="java.util.Map">
         SELECT
-            id, class_id AS clazzId, class_name AS clazzName
+            etp.id, class_id AS clazzId, class_name AS clazzName
         FROM
-            exam_task_print
+            exam_task_print etp
+        LEFT JOIN
+            exam_print_plan epp ON etp.print_plan_id = epp.id
         <where>
-            AND school_id = #{schoolId}
+            AND etp.school_id = #{schoolId}
             <if test="clazzIds != null">
-                AND class_id IN
+                AND etp.class_id IN
                 <foreach collection="clazzIds" item="item" index="index" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>
+            AND (epp.status != 'END' OR epp.status != '')
         </where>
     </select>
 </mapper>