zouxuan 2 лет назад
Родитель
Сommit
20236240fa

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java

@@ -104,4 +104,6 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
     int queryCurrentDatePlayTimeByUserId(Integer userId);
 
     List<ExportCompareRecordDto> exportCompareRecord(@Param("queryInfo") ExportCompareQueryInfo queryInfo);
+
+    int countExportCompareRecord(@Param("queryInfo") ExportCompareQueryInfo queryInfo);
 }

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1465,8 +1465,16 @@ public class ExportServiceImpl implements ExportService {
         if (CollectionUtils.isEmpty(rows)) {
             throw new BizException("没有可导出的数据");
         }
-        if (rows.size() > 50000) {
-            throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
+        if (rows.size() > 65535) {
+            throw new BizException("数据集太大,不能导出.最大数据集不能超过");
+        }
+    }
+    private void checkRows(Integer count){
+        if(count == null || count <= 0){
+            throw new BizException("没有可导出的数据");
+        }
+        if(count > 65535){
+            throw new BizException("数据集太大,不能导出.最大数据集不能超过65535");
         }
     }
 
@@ -1475,10 +1483,10 @@ public class ExportServiceImpl implements ExportService {
         ExportCompareQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), ExportCompareQueryInfo.class);
         SysUser user = sysUserService.getUser();
         queryInfo.setOrganId(organizationService.getEmployeeOrgan(user.getId(), queryInfo.getOrganId(), user.getIsSuperAdmin()));
-        List<ExportCompareRecordDto> rows = sysMusicCompareRecordDao.exportCompareRecord(queryInfo);
-        this.checkRows(rows);
+        Integer count = sysMusicCompareRecordDao.countExportCompareRecord(queryInfo);
+        checkRows(count);
         ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_TRAINING_STATISTICS,user.getId());
-        return this.asyncExport(() -> this.initExportInfo(rows, managerDownload,ExportEnum.EXPORT_TRAINING_STATISTICS),
+        return this.asyncExport(() -> this.initExportInfo(sysMusicCompareRecordDao.exportCompareRecord(queryInfo), managerDownload,ExportEnum.EXPORT_TRAINING_STATISTICS),
                 managerDownload.getName());
     }
 

+ 17 - 1
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -462,6 +462,22 @@
 			</if>
 		</where>
 		group by smcr.user_id_
-		order by o.id_;
+		order by o.id_
+	</select>
+	<select id="countExportCompareRecord" resultType="java.lang.Integer">
+		select COUNT(DISTINCT smcr.user_id_)
+		from sys_music_compare_record smcr
+		left join sys_user su ON su.id_ = smcr.user_id_
+		<where>
+			<if test="queryInfo.organId != null and queryInfo.organId != ''">
+				AND FIND_IN_SET(su.organ_id_, #{queryInfo.organId})
+			</if>
+			<if test="queryInfo.startDate != null and queryInfo.startDate != ''">
+				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &gt;= #{queryInfo.startDate}
+			</if>
+			<if test="queryInfo.endDate != null and queryInfo.endDate != ''">
+				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &lt;= #{queryInfo.endDate}
+			</if>
+		</where>
 	</select>
 </mapper>