Quellcode durchsuchen

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge vor 5 Jahren
Ursprung
Commit
b78e21a692

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

@@ -75,8 +75,17 @@ public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleE
 
     /**
      * 获取班级课程数
+     *
      * @param classGroupId
      * @return
      */
     Integer getClassGroupCourseTimes(@Param("classGroupId") Integer classGroupId);
+
+    /**
+     * 查询当天是否已有报告
+     * @param classGroupIds
+     * @param nowDate
+     * @return
+     */
+    List<CourseScheduleEvaluate> hasReportList(@Param("classGroupIds") List<Integer> classGroupIds, @Param("nowDate") Date nowDate);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseReview4EduQueryInfo.java

@@ -17,6 +17,9 @@ public class CourseReview4EduQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否提价作业 1-提交 0未提交",required = false)
     private Integer hasHandHomework;
 
+    @ApiModelProperty(value = "是否完成双向沟通 1-是 0-否",required = false)
+    private Integer hasLiaison;
+
     @ApiModelProperty(value = "开始时间",required = false)
     private String startTime;
 
@@ -63,4 +66,12 @@ public class CourseReview4EduQueryInfo extends QueryInfo {
     public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
+
+    public Integer getHasLiaison() {
+        return hasLiaison;
+    }
+
+    public void setHasLiaison(Integer hasLiaison) {
+        this.hasLiaison = hasLiaison;
+    }
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseReviewQueryInfo.java

@@ -32,6 +32,9 @@ public class CourseReviewQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否提价作业 1-提交 0未提交",required = false)
     private Integer hasHandHomework;
 
+    @ApiModelProperty(value = "是否完成双向沟通 1-是 0-否",required = false)
+    private Integer hasLiaison;
+
     @ApiModelProperty(value = "教务评价",required = false)
     private String courseReview;
 
@@ -130,4 +133,12 @@ public class CourseReviewQueryInfo extends QueryInfo {
     public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
+
+    public Integer getHasLiaison() {
+        return hasLiaison;
+    }
+
+    public void setHasLiaison(Integer hasLiaison) {
+        this.hasLiaison = hasLiaison;
+    }
 }

+ 24 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -135,26 +135,40 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
         List<CourseScheduleEvaluate> needPostReportPracticeGroups = practiceGroupDao.getNeedPostReportPracticeGroups(startDate, afterDate,afterDateIsLastDay);
 
         Map<Integer, Integer> courseTimesMap = new HashMap<>();
+        Map<Integer, Integer> reportCountMap = new HashMap<>();
         if (needPostReportPracticeGroups.size() > 0) {
             Date courseStartDate = DateUtil.addMonths(startDate, -1);
             List<Integer> classGroupIds = needPostReportPracticeGroups.stream().map(CourseScheduleEvaluate::getClassGroupId).collect(Collectors.toList());
             List<ClassGroup> reportCourseTimes = practiceGroupDao.getReportCourseTimes(classGroupIds, courseStartDate, startDate);
             courseTimesMap = reportCourseTimes.stream().collect(Collectors.toMap(ClassGroup::getId, ClassGroup::getTotalClassTimes));
+
+            List<CourseScheduleEvaluate> courseScheduleEvaluates = courseScheduleEvaluateDao.hasReportList(classGroupIds, startDate);
+            if(courseScheduleEvaluates.size() > 0){
+                reportCountMap = courseScheduleEvaluates.stream().collect(Collectors.toMap(CourseScheduleEvaluate::getClassGroupId,CourseScheduleEvaluate::getTimes));
+            }
         }
-        for (CourseScheduleEvaluate needPostReportPracticeGroup : needPostReportPracticeGroups) {
+        Iterator<CourseScheduleEvaluate> iterator = needPostReportPracticeGroups.iterator();
+        while (iterator.hasNext()){
+            CourseScheduleEvaluate courseScheduleEvaluate = iterator.next();
+            if(reportCountMap.containsKey(courseScheduleEvaluate.getClassGroupId()) &&
+                    reportCountMap.get(courseScheduleEvaluate.getClassGroupId()) > 0){
+                iterator.remove();
+                continue;
+            }
             int times = 0;
-            if (courseTimesMap.containsKey(needPostReportPracticeGroup.getClassGroupId()) &&
-                    courseTimesMap.get(needPostReportPracticeGroup.getClassGroupId()) != null
+            if (courseTimesMap.containsKey(courseScheduleEvaluate.getClassGroupId()) &&
+                    courseTimesMap.get(courseScheduleEvaluate.getClassGroupId()) != null
             ) {
-                times = courseTimesMap.get(needPostReportPracticeGroup.getClassGroupId());
+                times = courseTimesMap.get(courseScheduleEvaluate.getClassGroupId());
             }
-            needPostReportPracticeGroup.setTimes(times);
-            needPostReportPracticeGroup.setTotalMinutes(times * needPostReportPracticeGroup.getTotalMinutes());
-            needPostReportPracticeGroup.setCreateTime(nowDate);
-            needPostReportPracticeGroup.setUpdateTime(nowDate);
-            needPostReportPracticeGroup.setStatus(0);
-            needPostReportPracticeGroup.setVersion(2);
+            courseScheduleEvaluate.setTimes(times);
+            courseScheduleEvaluate.setTotalMinutes(times * courseScheduleEvaluate.getTotalMinutes());
+            courseScheduleEvaluate.setCreateTime(nowDate);
+            courseScheduleEvaluate.setUpdateTime(nowDate);
+            courseScheduleEvaluate.setStatus(0);
+            courseScheduleEvaluate.setVersion(2);
         }
+
         if (needPostReportPracticeGroups.size() > 0) {
             courseScheduleEvaluateDao.batchAdd(needPostReportPracticeGroups);
         }

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -233,4 +233,13 @@
     <select id="getClassGroupCourseTimes" resultType="int">
         SELECT COUNT(*) FROM course_schedule WHERE class_group_id_ = #{classGroupId} AND (del_flag_=0 OR del_flag_ IS NULL)
     </select>
+
+    <select id="hasReportList" resultMap="CourseScheduleEvaluate">
+        SELECT COUNT(*) times_, class_group_id_ FROM course_schedule_evaluate WHERE class_group_id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" open="(" separator="," close=")">
+            #{classGroupId}
+        </foreach>
+        AND DATE_FORMAT(create_time_,'%Y%m%d') = DATE_FORMAT(#{nowDate},'%Y%m%d')
+        GROUP BY class_group_id_;
+    </select>
 </mapper>

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -160,6 +160,12 @@
             <if test='hasHandHomework !=null and hasHandHomework=="0"'>
                 AND csr.hand_homework_ IS NULL
             </if>
+            <if test='hasLiaison !=null and hasLiaison=="1"'>
+                AND csr.has_liaison_ = 1
+            </if>
+            <if test='hasLiaison !=null and hasLiaison=="0"'>
+                AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL
+            </if>
             <if test="courseReview != null">
                 AND csr.course_review_=#{courseReview}
             </if>
@@ -208,6 +214,12 @@
             <if test='hasHandHomework !=null and hasHandHomework=="0"'>
                 AND csr.hand_homework_ IS NULL
             </if>
+            <if test='hasLiaison !=null and hasLiaison=="1"'>
+                AND csr.has_liaison_ = 1
+            </if>
+            <if test='hasLiaison !=null and hasLiaison=="0"'>
+                AND csr.has_liaison_ = 0
+            </if>
             <if test="startTime !=null">
                 <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
             </if>