Преглед на файлове

Merge remote-tracking branch 'origin/master'

Joburgess преди 5 години
родител
ревизия
a1f1b74cd4

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java

@@ -11,4 +11,5 @@ import java.util.List;
 
 public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleEvaluate> {
 
+    CourseScheduleEvaluate findByClassGroupId(@Param("classGroupId") Integer classGroupId);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -34,6 +34,10 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
         if(classGroup==null){
            throw new BizException("课程不存在!");
         }
+        CourseScheduleEvaluate hasOne = courseScheduleEvaluateDao.findByClassGroupId(courseScheduleEvaluate.getClassGroupId());
+        if(hasOne != null){
+            throw new BizException("报告已添加,请勿重复提交");
+        }
         courseScheduleEvaluate.setMusicGroupId(classGroup.getMusicGroupId());
         courseScheduleEvaluate.setCreateTime(new Date());
         long num = courseScheduleEvaluateDao.insert(courseScheduleEvaluate);

+ 38 - 24
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1636,6 +1636,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 newCourseSchedule.setEndClassTime(endClassTime);
             }*/
 
+            if (Objects.isNull(newCourseSchedule.getGroupType())) {
+                newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
+            }
             if (Objects.isNull(newCourseSchedule.getActualTeacherId())) {
                 newCourseSchedule.setActualTeacherId(oldCourseSchedule.getActualTeacherId());
             }
@@ -1738,30 +1741,35 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				}
 			}
 			
+			if(newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START && newCourseSchedule.getGroupType() == GroupType.MUSIC){
+				//查询新生(之前排课没有这个人,后来新进来的学生)
+				List<ClassGroupStudentMapper> newStudentList = classGroupStudentMapperDao.queryNewStudentListByCourseScheduleId(courseScheduleId);
+				if(newStudentList.size() > 0){
+					//生成courseScheduleStudentPayment记录
+					for(ClassGroupStudentMapper cgsm : newStudentList){
+						CourseScheduleStudentPayment sp = new CourseScheduleStudentPayment();
+						sp.setClassGroupId(newCourseSchedule.getClassGroupId());
+						sp.setCourseScheduleId(courseScheduleId);
+						sp.setCreateTime(date);
+						sp.setExpectPrice(new BigDecimal(0));
+						sp.setGroupType(GroupType.MUSIC);
+						sp.setMusicGroupId(newCourseSchedule.getMusicGroupId());
+						sp.setUpdateTime(date);
+						sp.setUserId(cgsm.getUserId());
+						
+						insertCourseScheduleStudentPaymentList.add(sp);
+					}
+				}
+				
+				//清理课程作业
+				courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleId);
+			}
+			
 			if ((newCourseSchedule.getStatus() != oldCourseSchedule.getStatus() && newCourseSchedule.getStatus() == CourseStatusEnum.NOT_START)) {
 				//如果已结束修改成了未开始,需要更新学生考勤记录
 				studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
 				
 				if(newCourseSchedule.getGroupType() == GroupType.MUSIC){
-					//查询新生(之前排课没有这个人,后来新进来的学生)
-					List<ClassGroupStudentMapper> newStudentList = classGroupStudentMapperDao.queryNewStudentListByCourseScheduleId(courseScheduleId);
-					if(newStudentList.size() > 0){
-						//生成courseScheduleStudentPayment记录
-						for(ClassGroupStudentMapper cgsm : newStudentList){
-							CourseScheduleStudentPayment sp = new CourseScheduleStudentPayment();
-							sp.setClassGroupId(newCourseSchedule.getClassGroupId());
-							sp.setCourseScheduleId(courseScheduleId);
-							sp.setCreateTime(date);
-							sp.setExpectPrice(new BigDecimal(0));
-							sp.setGroupType(GroupType.MUSIC);
-							sp.setMusicGroupId(newCourseSchedule.getMusicGroupId());
-							sp.setUpdateTime(date);
-							sp.setUserId(cgsm.getUserId());
-							
-							insertCourseScheduleStudentPaymentList.add(sp);
-						}
-					}
-					
 					//清理课程作业
 					courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleId);
 				}
@@ -1833,11 +1841,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							// 乐团结算方式
 							String settlementType = musicGroupSettlementsMap.get(courseScheduleId);
 							int unitMinutes = 30;
-							if (newCourseSchedule.getType() == CourseScheduleType.CLASSROOM) {
-								unitMinutes = 40;
-							} else if (newCourseSchedule.getType() == CourseScheduleType.HIGH) {
-								unitMinutes = 45;
-							}
 
 							// 如果当前教师是在指定日期之后入职的,则按照3.0的方式结算
 							Teacher teacher = teacherMap.get(teacherId);
@@ -1846,12 +1849,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 								settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
 							}
 							if (StringUtils.equals(settlementType, "TEACHER_DEFAULT")) {
+								if (newCourseSchedule.getType() == CourseScheduleType.CLASSROOM) {
+									unitMinutes = 40;
+								} else if (newCourseSchedule.getType() == CourseScheduleType.HIGH) {
+									unitMinutes = 45;
+								}
 								if (ts.getTeacherRole() == TeachTypeEnum.BISHOP) {
 									ts.setExpectSalary(new BigDecimal(tdms.getMainTeacher30MinSalary().doubleValue() * newMinutes / unitMinutes));
 								} else {
 									ts.setExpectSalary(new BigDecimal(tdms.getAssistantTeacher30MinSalary().doubleValue() * newMinutes / unitMinutes));
 								}
 							} else if (StringUtils.equals(settlementType, "GRADIENT_SALARY")) {
+								unitMinutes = 90;
+								if (newCourseSchedule.getType() == CourseScheduleType.CLASSROOM) {
+									unitMinutes = 40;
+								} else if (newCourseSchedule.getType() == CourseScheduleType.HIGH) {
+									unitMinutes = 45;
+								}
 								if (ts.getTeacherRole() == TeachTypeEnum.BISHOP) {
 									ts.setExpectSalary(new BigDecimal(tdms.getMainTeacher90MinSalary().doubleValue() * newMinutes / unitMinutes));
 								} else {

+ 24 - 16
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -1,19 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace=" com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao">
-  <resultMap id="CourseScheduleEvaluate" type="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate">
-    <id column="id_" jdbcType="BIGINT" property="id" />
-    <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId" />
-    <result column="class_group_id_" jdbcType="INTEGER" property="classGroupId" />
-    <result column="course_schedule_id_" jdbcType="BIGINT" property="courseScheduleId" />
-    <result column="teacher_id_" jdbcType="INTEGER" property="teacherId" />
-    <result column="item_" jdbcType="VARCHAR" property="item" />
-    <result column="comment_" jdbcType="LONGVARCHAR" property="comment" />
-    <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, music_group_id_, class_group_id_, course_schedule_id_, teacher_id_, item_, comment_, 
-    create_time_
-  </sql>
+<mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao">
+    <resultMap id="CourseScheduleEvaluate" type="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate">
+        <id column="id_" jdbcType="BIGINT" property="id" />
+        <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId" />
+        <result column="class_group_id_" jdbcType="INTEGER" property="classGroupId" />
+        <result column="course_schedule_id_" jdbcType="BIGINT" property="courseScheduleId" />
+        <result column="teacher_id_" jdbcType="INTEGER" property="teacherId" />
+        <result column="item_" jdbcType="VARCHAR" property="item" />
+        <result column="comment_" jdbcType="LONGVARCHAR" property="comment" />
+        <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
+    </resultMap>
+    <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        insert into course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_,
+        teacher_id_, item_, comment_,
+        create_time_)
+        values (#{musicGroupId,jdbcType=VARCHAR}, #{classGroupId,jdbcType=INTEGER}, #{courseScheduleId,jdbcType=BIGINT},
+        #{teacherId,jdbcType=INTEGER}, #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR},
+        #{createTime,jdbcType=TIMESTAMP})
+    </insert>
+
+    <select id="findByClassGroupId" resultMap="CourseScheduleEvaluate">
+        SELECT * FROM course_schedule_evaluate WHERE class_group_id_ = #{classGroupId}
+    </select>
 </mapper>

+ 22 - 23
mec-util/src/main/java/com/ym/mec/util/collection/ListUtil.java

@@ -2,7 +2,6 @@ package com.ym.mec.util.collection;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.ListIterator;
 
 public class ListUtil {
 
@@ -13,35 +12,35 @@ public class ListUtil {
 	 * @return
 	 */
 	public static boolean isEquals(List<?> list1, List<?> list2) {
-		if (null != list1 && null != list2) {
-			if(list1.size() != list2.size()){
-				return false;
-			}
-			ListIterator<?> listIterator = list1.listIterator();
-			while(listIterator.hasNext()){
-				Object obj = listIterator.next();
-				if(!list2.contains(obj)){
-					return false;
-				}
-				listIterator.remove();
-				list2.remove(obj);
-			}
+		if (list1 == list2) {
+			return true;
 		}
-		return true;
+		if (list1 == null && list2 == null) {
+			return true;
+		}
+		if (list1 == null || list2 == null) {
+			return false;
+		}
+		if (list1.size() != list2.size()) {
+			return false;
+		}
+		if (list1.containsAll(list2) && list2.containsAll(list1)) {
+			return true;
+		}
+		return false;
 	}
-	
-	
+
 	public static void main(String[] args) {
 		List<Integer> list1 = new ArrayList<Integer>();
 		list1.add(2);
-		list1.add(2);
 		list1.add(1);
-		
+		list1.add(1);
+
 		List<Integer> list2 = new ArrayList<Integer>();
+		list2.add(1);
 		list2.add(2);
-		list2.add(2);
-		list2.add(2);
-		
-		System.out.println(isEquals(list1,list2)? "true" : "false");
+		list2.add(1);
+
+		System.out.println(isEquals(list1, list2) ? "true" : "false");
 	}
 }