Explorar o código

课表修改班级时BUG修复

chenw %!s(int64=6) %!d(string=hai) anos
pai
achega
7192772418

+ 5 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/CurriculumServiceImpl.java

@@ -160,6 +160,11 @@ public class CurriculumServiceImpl implements CurriculumService {
             }
         }else {
             //更新主表
+            //如果班级发生变更
+            String oldClazzId = curriculumMapper.selectMain(main.getId()).getClazzId();
+            if (!main.getClazzId().equals(oldClazzId)){
+                curriculumMapper.updateDetailClazzIdByMainId(Long.parseLong(main.getClazzId()), main.getId());
+            }
             curriculumMapper.updateByPrimaryKeySelective(main);
             if (!CollectionUtils.isEmpty(items)) {
                 List<CurriculumDetailDTO> insertList = new ArrayList<CurriculumDetailDTO>();

+ 7 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/CurriculumMapper.java

@@ -120,4 +120,11 @@ public interface CurriculumMapper {
      * @return
      */
     int updateByRepublish(Long id);
+
+    /**
+     * 课表班级发生变更时,更新明细表对应的班级
+     * @param clazzId
+     * @param mainId
+     */
+    void updateDetailClazzIdByMainId(@Param("clazzId") Long clazzId, @Param("mainId") Long mainId);
 }

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/CurriculumMapper.xml

@@ -290,4 +290,8 @@
     where id = #{id,jdbcType=BIGINT}
   </update>
 
+  <update id="updateDetailClazzIdByMainId" >
+    update clazz_curriculum set clazz_id = #{clazzId} where cur_mid = #{mainId}
+  </update>
+
 </mapper>