|
@@ -1,12 +1,11 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
-import com.qmth.distributed.print.business.bean.marking.GroupInfo;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.entity.ExamPaperStructure;
|
|
import com.qmth.distributed.print.business.entity.TBSyncTask;
|
|
import com.qmth.distributed.print.business.entity.TBSyncTask;
|
|
import com.qmth.distributed.print.business.mapper.TBSyncTaskMapper;
|
|
import com.qmth.distributed.print.business.mapper.TBSyncTaskMapper;
|
|
import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.service.*;
|
|
@@ -99,7 +98,42 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
- public TBSyncTask saveTask(Long schoolId, Long objectId, String orgCode, String thirdRelateName, String examTime, PushTypeEnum type, String remark) {
|
|
|
|
|
|
+ public TBSyncTask saveTaskStructure(Long schoolId, ExamPaperStructure examPaperStructure, Long objectId, PushTypeEnum type, String remark) {
|
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
|
+ QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(TBSyncTask::getSchoolId, schoolId)
|
|
|
|
+ .eq(TBSyncTask::getObjectId, objectId)
|
|
|
|
+ .eq(TBSyncTask::getType, type);
|
|
|
|
+ TBSyncTask tbSyncTask = this.getOne(queryWrapper);
|
|
|
|
+ Long id = SystemConstant.getDbUuid();
|
|
|
|
+ if (tbSyncTask != null) {
|
|
|
|
+ if (!TaskStatusEnum.FINISH.equals(tbSyncTask.getStatus())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("有任务未结束");
|
|
|
|
+ }
|
|
|
|
+ id = tbSyncTask.getId();
|
|
|
|
+ this.removeById(id);
|
|
|
|
+ }
|
|
|
|
+ tbSyncTask = new TBSyncTask();
|
|
|
|
+ tbSyncTask.setId(id);
|
|
|
|
+ tbSyncTask.setSchoolId(schoolId);
|
|
|
|
+ tbSyncTask.setSemesterId(examPaperStructure.getSemesterId());
|
|
|
|
+ tbSyncTask.setExamId(examPaperStructure.getExamId());
|
|
|
|
+ tbSyncTask.setCourseCode(examPaperStructure.getCourseCode());
|
|
|
|
+ tbSyncTask.setCourseName(examPaperStructure.getCourseName());
|
|
|
|
+ tbSyncTask.setPaperNumber(examPaperStructure.getPaperNumber());
|
|
|
|
+ tbSyncTask.setObjectId(objectId);
|
|
|
|
+ tbSyncTask.setType(type);
|
|
|
|
+ tbSyncTask.setRemark(remark);
|
|
|
|
+ tbSyncTask.setStatus(TaskStatusEnum.INIT);
|
|
|
|
+ tbSyncTask.setCreateId(sysUser.getId());
|
|
|
|
+ tbSyncTask.setCreateTime(System.currentTimeMillis());
|
|
|
|
+ this.save(tbSyncTask);
|
|
|
|
+ return tbSyncTask;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public TBSyncTask saveTaskBaseData(Long schoolId, Long semesterId, Long examId, String courseCode, String courseName, String paperNumber, Long objectId, String orgCode, String thirdRelateName, String examTime, PushTypeEnum type, String remark) {
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(TBSyncTask::getSchoolId, schoolId)
|
|
queryWrapper.lambda().eq(TBSyncTask::getSchoolId, schoolId)
|
|
@@ -122,6 +156,11 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
|
|
tbSyncTask = new TBSyncTask();
|
|
tbSyncTask = new TBSyncTask();
|
|
tbSyncTask.setId(id);
|
|
tbSyncTask.setId(id);
|
|
tbSyncTask.setSchoolId(schoolId);
|
|
tbSyncTask.setSchoolId(schoolId);
|
|
|
|
+ tbSyncTask.setSemesterId(semesterId);
|
|
|
|
+ tbSyncTask.setExamId(examId);
|
|
|
|
+ tbSyncTask.setCourseCode(courseCode);
|
|
|
|
+ tbSyncTask.setCourseName(courseName);
|
|
|
|
+ tbSyncTask.setPaperNumber(paperNumber);
|
|
tbSyncTask.setObjectId(objectId);
|
|
tbSyncTask.setObjectId(objectId);
|
|
tbSyncTask.setOrgCode(orgCode);
|
|
tbSyncTask.setOrgCode(orgCode);
|
|
tbSyncTask.setThirdRelateName(thirdRelateName);
|
|
tbSyncTask.setThirdRelateName(thirdRelateName);
|
|
@@ -190,12 +229,12 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public IPage<SyncListResult> query(Long schoolId, TaskStatusEnum status, PushTypeEnum type, TaskResultEnum result, int pageNumber, int pageSize) {
|
|
|
|
|
|
+ public IPage<SyncListResult> query(Long schoolId, Long semesterId, Long examId, String courseCode, String paperNumber, TaskStatusEnum status, PushTypeEnum type, TaskResultEnum result, int pageNumber, int pageSize) {
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
|
|
|
- IPage<SyncListResult> page = this.baseMapper.query(new Page<>(pageNumber, pageSize), schoolId, status, type, result, dpr);
|
|
|
|
|
|
+ IPage<SyncListResult> page = this.baseMapper.query(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, courseCode, paperNumber, status, type, result, dpr);
|
|
List<SyncListResult> list = page.getRecords();
|
|
List<SyncListResult> list = page.getRecords();
|
|
for (SyncListResult syncListResult : list) {
|
|
for (SyncListResult syncListResult : list) {
|
|
syncListResult.setStatus(Objects.nonNull(syncListResult.getStatus()) ? TaskStatusEnum.valueOf(syncListResult.getStatus()).getTitle() : null);
|
|
syncListResult.setStatus(Objects.nonNull(syncListResult.getStatus()) ? TaskStatusEnum.valueOf(syncListResult.getStatus()).getTitle() : null);
|
|
@@ -205,63 +244,6 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
|
|
return page;
|
|
return page;
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- public TBSyncTask findUserPushRecord(Long userId, Long schoolId) {
|
|
|
|
- List<TBSyncTask> userPushList = this.list(new QueryWrapper<TBSyncTask>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(TBSyncTask::getSchoolId, schoolId)
|
|
|
|
- .eq(TBSyncTask::getObjectId, userId)
|
|
|
|
- .eq(TBSyncTask::getType, PushTypeEnum.USER_PUSH));
|
|
|
|
- if (userPushList != null && userPushList.size() > 0) {
|
|
|
|
- if (userPushList.size() > 1) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception("异常:用户【" + userId + "】拥有多条推送记录");
|
|
|
|
- }
|
|
|
|
- return userPushList.get(0);
|
|
|
|
- } else {
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- @Override
|
|
|
|
- public void initUserPushTasks(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser) {
|
|
|
|
- Long schoolId = requestUser.getSchoolId();
|
|
|
|
- for (Long userId : userPushMap.keySet()) {
|
|
|
|
- TBSyncTask dbRecord = this.findUserPushRecord(userId, schoolId);
|
|
|
|
- Long id;
|
|
|
|
- if (Objects.nonNull(dbRecord)) {
|
|
|
|
- id = dbRecord.getId();
|
|
|
|
- } else {
|
|
|
|
- id = SystemConstant.getDbUuid();
|
|
|
|
- }
|
|
|
|
- TBSyncTask tbSyncTask = new TBSyncTask();
|
|
|
|
- tbSyncTask.setId(id);
|
|
|
|
- tbSyncTask.setSchoolId(schoolId);
|
|
|
|
- tbSyncTask.setType(PushTypeEnum.USER_PUSH);
|
|
|
|
- tbSyncTask.setObjectId(userId);
|
|
|
|
- tbSyncTask.setStatus(TaskStatusEnum.INIT);
|
|
|
|
- tbSyncTask.setRemark(sysUserService.getById(userId).getLoginName());
|
|
|
|
- tbSyncTask.setResult(null);
|
|
|
|
- tbSyncTask.setCreateId(requestUser.getId());
|
|
|
|
- tbSyncTask.setCreateTime(System.currentTimeMillis());
|
|
|
|
- this.saveOrUpdate(tbSyncTask);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- @Override
|
|
|
|
- public TBSyncTask runningUserPushTask(Long userId, SysUser requestUser) {
|
|
|
|
- Long schoolId = requestUser.getSchoolId();
|
|
|
|
- TBSyncTask tbSyncTask = this.findUserPushRecord(userId, schoolId);
|
|
|
|
- if (Objects.isNull(tbSyncTask)) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception("用户推送表信息缺失");
|
|
|
|
- }
|
|
|
|
- tbSyncTask.setStatus(TaskStatusEnum.RUNNING);
|
|
|
|
- tbSyncTask.updateInfo(requestUser.getId());
|
|
|
|
- this.saveOrUpdate(tbSyncTask);
|
|
|
|
- return tbSyncTask;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public void resync(Long id) throws IllegalAccessException {
|
|
public void resync(Long id) throws IllegalAccessException {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
@@ -299,9 +281,6 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
|
|
case CALCULATE:
|
|
case CALCULATE:
|
|
asyncTeachCloudReportService.startCalc(gradeBatchService.getById(tbSyncTask.getObjectId()));
|
|
asyncTeachCloudReportService.startCalc(gradeBatchService.getById(tbSyncTask.getObjectId()));
|
|
break;
|
|
break;
|
|
- case USER_PUSH:
|
|
|
|
- cloudUserPushService.pushCloudUser(tbSyncTask.getObjectId(), requestUser);
|
|
|
|
- break;
|
|
|
|
case MARKER_PUSH:
|
|
case MARKER_PUSH:
|
|
asyncCloudMarkingTaskService.syncMarkerAndClass(examPaperStructureService.getById(tbSyncTask.getObjectId()));
|
|
asyncCloudMarkingTaskService.syncMarkerAndClass(examPaperStructureService.getById(tbSyncTask.getObjectId()));
|
|
break;
|
|
break;
|