Joburgess 4 лет назад
Родитель
Сommit
9f2d1bcb3c

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexErrDataRecordDao.java

@@ -8,6 +8,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.IndexErrDataRecord;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -31,6 +32,15 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
     int countWithGenerateTime(@Param("generateTime") String generateTime);
 
     /**
+     * @describe 获取所有异常相关教务老师编号
+     * @author Joburgess
+     * @date 2021/6/2 0002
+     * @param organIds:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> getAllDealUserIds(@Param("organIds") Collection organIds);
+
+    /**
      * @describe 根据产生日期
      * @author Joburgess
      * @date 2021/5/28 0028
@@ -103,6 +113,7 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
     List<String> queryErrStrings(Map<String, Object> params);
     int queryErrStringsCount(Map<String, Object> params);
     List<IndexErrDataRecord> getWithOrganMonthUserStr(@Param("omuStrings") List<String> omuStrings);
+    List<IndexErrDataRecord> getAllErrDatas(Map<String, Object> params);
 
     /**
      * @describe 历史异常数据-乐团巡查事项异常/乐团巡查任务未提交

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/IndexErrRecordQueryInfo.java

@@ -10,6 +10,8 @@ public class IndexErrRecordQueryInfo extends QueryInfo {
 
     private String organIds;
 
+    private Integer educationUserId;
+
     private String startDate;
 
     private String endDate;
@@ -22,6 +24,14 @@ public class IndexErrRecordQueryInfo extends QueryInfo {
         this.organIds = organIds;
     }
 
+    public Integer getEducationUserId() {
+        return educationUserId;
+    }
+
+    public void setEducationUserId(Integer educationUserId) {
+        this.educationUserId = educationUserId;
+    }
+
     public String getStartDate() {
         return startDate;
     }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/IndexErrDataRecordService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
 import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.IndexErrDataRecord;
 import com.ym.mec.biz.dal.entity.InspectionItem;
 import com.ym.mec.biz.dal.entity.InspectionItemPlan;
@@ -36,9 +37,27 @@ public interface IndexErrDataRecordService extends BaseService<Long, IndexErrDat
      */
     List<IndexErrorDataExportDto> errRecordExport(String organIds, String startDate, String endDate);
 
+    /**
+     * @describe 获取所有异常相关教务人员
+     * @author Joburgess
+     * @date 2021/6/2 0002
+     * @param organIds:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> getAllEducationUsers(String organIds);
+
     PageInfo<IndexErrorDataExportDto> queryRecord(IndexErrRecordQueryInfo queryInfo);
 
     /**
+     * @describe 异常数据汇总
+     * @author Joburgess
+     * @date 2021/6/2 0002
+     * @param queryInfo:
+     * @return com.ym.mec.biz.dal.dto.IndexErrorDataExportDto
+     */
+    IndexErrorDataExportDto errDataSummarizing(IndexErrRecordQueryInfo queryInfo);
+
+    /**
      * @describe 历史异常数据-乐团巡查事项异常
      * @author Joburgess
      * @date 2021/5/28 0028

+ 67 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java

@@ -62,6 +62,8 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 	private PracticeGroupDao practiceGroupDao;
 	@Autowired
 	private OrganizationDao organizationDao;
+	@Autowired
+	private TeacherDao teacherDao;
 
 	@Override
 	public BaseDAO<Long, IndexErrDataRecord> getDAO() {
@@ -178,6 +180,17 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 	}
 
 	@Override
+	public List<SimpleUserDto> getAllEducationUsers(String organIds) {
+		Set<Integer> queryOrganIds = null;
+		if(StringUtils.isNotBlank(organIds)){
+			queryOrganIds = Arrays.stream(organIds.split(",")).map(Integer::new).collect(Collectors.toSet());
+		}
+		List<Integer> allDealUserIds = indexErrDataRecordDao.getAllDealUserIds(queryOrganIds);
+		List<SimpleUserDto> users = teacherDao.getUsersSimpleInfo(allDealUserIds);
+		return users;
+	}
+
+	@Override
 	public List<IndexErrorDataExportDto> errRecordExport(String organIdsStr, String startDate, String endDate) {
 		List<IndexErrorDataExportDto> result = new ArrayList<>();
 		Set<Integer> queryOrganIds = null;
@@ -324,6 +337,60 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 	}
 
 	@Override
+	public IndexErrorDataExportDto errDataSummarizing(IndexErrRecordQueryInfo queryInfo) {
+		PageInfo<IndexErrorDataExportDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		Set<Integer> queryOrganIds = null;
+		if(StringUtils.isNotBlank(queryInfo.getOrganIds())){
+			queryOrganIds = Arrays.stream(queryInfo.getOrganIds().split(",")).map(Integer::new).collect(Collectors.toSet());
+		}
+		params.put("queryOrganIds", queryOrganIds);
+
+		List<IndexErrDataRecord> allErrDatas = indexErrDataRecordDao.getAllErrDatas(params);
+		IndexErrorDataExportDto record = new IndexErrorDataExportDto();
+
+		Map<IndexErrorType, Long> typeDataNumMap = allErrDatas.stream().collect(Collectors.groupingBy(IndexErrDataRecord::getDataType, Collectors.counting()));
+		Map<IndexErrorType, Long> typeSurplusDataNumMap = allErrDatas.stream().filter(e->Objects.isNull(e.getDealTime())).collect(Collectors.groupingBy(IndexErrDataRecord::getDataType, Collectors.counting()));
+		for (Map.Entry<IndexErrorType, Long> typeDataNumMapEntry : typeDataNumMap.entrySet()) {
+			switch (typeDataNumMapEntry.getKey()){
+				case MUSIC_PATROL_ITEM:
+					record.setMusicPatrolItem(typeDataNumMapEntry.getValue().intValue());
+					if(typeSurplusDataNumMap.containsKey(typeDataNumMapEntry.getValue())) {
+						record.setMusicPatrolItemSurplus(typeSurplusDataNumMap.get(typeDataNumMapEntry.getValue()).intValue());
+					}
+					break;
+				case INSPECTION_ITEM_PLAN:
+					record.setInspectionItemPlan(typeDataNumMapEntry.getValue().intValue());
+					if(typeSurplusDataNumMap.containsKey(typeDataNumMapEntry.getValue())) {
+						record.setInspectionItemPlanSurplus(typeSurplusDataNumMap.get(typeDataNumMapEntry.getValue()).intValue());
+					}
+					break;
+				case STUDENT_VISIT:
+					record.setStudentVisit(typeDataNumMapEntry.getValue().intValue());
+					if(typeSurplusDataNumMap.containsKey(typeDataNumMapEntry.getValue())) {
+						record.setStudentVisitSurplus(typeSurplusDataNumMap.get(typeDataNumMapEntry.getValue()).intValue());
+					}
+					break;
+				case TEACHER_EXCEPTION_ATTENDANCE:
+					record.setTeacherExceptionAttendance(typeDataNumMapEntry.getValue().intValue());
+					if(typeSurplusDataNumMap.containsKey(typeDataNumMapEntry.getValue())) {
+						record.setTeacherExceptionAttendanceSurplus(typeSurplusDataNumMap.get(typeDataNumMapEntry.getValue()).intValue());
+					}
+					break;
+				case TEACHER_NOT_A_CLASS:
+					record.setTeacherNotAClass(typeDataNumMapEntry.getValue().intValue());
+					if(typeSurplusDataNumMap.containsKey(typeDataNumMapEntry.getValue())) {
+						record.setTeacherNotAClassSurplus(typeSurplusDataNumMap.get(typeDataNumMapEntry.getValue()).intValue());
+					}
+					break;
+			}
+		}
+
+		return record;
+	}
+
+	@Override
 	public PageInfo<InspectionItemPlan> queryErrInspectionData(InspectionItemPlanQueryInfo queryInfo) {
 		PageInfo<InspectionItemPlan> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();

+ 17 - 0
mec-biz/src/main/resources/config/mybatis/IndexErrDataRecordMapper.xml

@@ -304,6 +304,11 @@
 		</foreach>
 	</select>
 
+	<select id="getAllErrDatas" resultMap="IndexErrDataRecord">
+		SELECT * FROM index_err_data_record
+		<include refid="queryErrStringsCondition"></include>
+	</select>
+
 	<select id="queryErrInspectionData" resultMap="com.ym.mec.biz.dal.dao.InspectionItemPlanDao.InspectionItemPlan" parameterType="map">
 		SELECT iip.*,su.real_name_ realName,o.name_ organName,co.name_ cooperationName,mg.name_ musicGroupName,
 		       irdr.generate_time_ generateTime,irdr.deal_time_ dealTime
@@ -511,6 +516,18 @@
 		<include refid="endFindCourseSchedulesCondition"/>
 	</select>
 
+	<select id="getAllDealUserIds" resultType="int">
+		SELECT DISTINCT deal_user_id_ FROM index_err_data_record
+		<where>
+			<if test="organIds!=null and organIds.size()>0">
+				AND organ_id_ IN
+				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+		</where>
+	</select>
+
 	<sql id="endFindCourseSchedulesCondition">
 		<where>
 			cs.del_flag_ = 0

+ 42 - 0
mec-web/src/main/java/com/ym/mec/web/controller/IndexErrDataRecordController.java

@@ -68,6 +68,48 @@ public class IndexErrDataRecordController extends BaseController {
         return succeed(indexErrDataRecordService.queryRecord(queryInfo));
     }
 
+    @ApiOperation(value = "异常记录汇总")
+    @GetMapping("/errDataSummarizing")
+    public HttpResponseResult errDataSummarizing(IndexErrRecordQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganIds())) {
+            queryInfo.setOrganIds(employee.getOrganIdList());
+        } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+            return failed("用户所在分部异常");
+        } else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if (!list.containsAll(Arrays.asList(queryInfo.getOrganIds().split(",")))) {
+                return failed("非法请求");
+            }
+        }
+        return succeed(indexErrDataRecordService.errDataSummarizing(queryInfo));
+    }
+
+    @ApiOperation(value = "获取所有异常相关教务人员")
+    @GetMapping("/getAllEducationUsers")
+    public HttpResponseResult getAllEducationUsers(String organIds){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(organIds)) {
+            organIds = employee.getOrganIdList();
+        } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+            return failed("用户所在分部异常");
+        } else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if (!list.containsAll(Arrays.asList(organIds.split(",")))) {
+                return failed("非法请求");
+            }
+        }
+        return succeed(indexErrDataRecordService.getAllEducationUsers(organIds));
+    }
+
     @ApiOperation(value = "乐团巡查事项异常/乐团巡查任务未提交")
     @GetMapping("/queryErrInspectionData")
     public HttpResponseResult<PageInfo<InspectionItemPlan>> queryErrInspectionData(InspectionItemPlanQueryInfo queryInfo){