|
@@ -1,7 +1,6 @@
|
|
package com.qmth.distributed.print.api;
|
|
package com.qmth.distributed.print.api;
|
|
|
|
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
@@ -11,6 +10,7 @@ import com.qmth.distributed.print.business.bean.result.EditResult;
|
|
import com.qmth.distributed.print.business.bean.result.TSyncExamStudentScoreResult;
|
|
import com.qmth.distributed.print.business.bean.result.TSyncExamStudentScoreResult;
|
|
import com.qmth.distributed.print.business.entity.TBSyncTask;
|
|
import com.qmth.distributed.print.business.entity.TBSyncTask;
|
|
import com.qmth.distributed.print.business.entity.TSyncExamStudentScore;
|
|
import com.qmth.distributed.print.business.entity.TSyncExamStudentScore;
|
|
|
|
+import com.qmth.distributed.print.business.enums.ImageTrajectoryEnum;
|
|
import com.qmth.distributed.print.business.service.PrintCommonService;
|
|
import com.qmth.distributed.print.business.service.PrintCommonService;
|
|
import com.qmth.distributed.print.business.service.TSyncExamStudentScoreService;
|
|
import com.qmth.distributed.print.business.service.TSyncExamStudentScoreService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncScoreBatchDownloadService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncScoreBatchDownloadService;
|
|
@@ -18,18 +18,16 @@ import com.qmth.distributed.print.business.templete.execute.AsyncScoreExportServ
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncScorePushService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncScorePushService;
|
|
import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
|
+import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.PushTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.PushTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.TaskTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.TaskTypeEnum;
|
|
-import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
|
|
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
|
-import com.qmth.teachcloud.common.util.FileStoreUtil;
|
|
|
|
-import com.qmth.teachcloud.common.util.ImageTrajectoryUtil;
|
|
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
|
+import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import io.swagger.annotations.*;
|
|
import io.swagger.annotations.*;
|
|
-import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
@@ -39,13 +37,9 @@ import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.validation.constraints.Max;
|
|
import javax.validation.constraints.Max;
|
|
import javax.validation.constraints.Min;
|
|
import javax.validation.constraints.Min;
|
|
-import java.io.File;
|
|
|
|
-import java.io.FileInputStream;
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
-import java.util.StringJoiner;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -58,7 +52,7 @@ import java.util.StringJoiner;
|
|
@Api(tags = "成绩归档Controller")
|
|
@Api(tags = "成绩归档Controller")
|
|
@RestController
|
|
@RestController
|
|
@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sync}")
|
|
@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sync}")
|
|
-@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
|
|
|
|
|
|
+//@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
|
|
@Validated
|
|
@Validated
|
|
public class TSyncExamStudentScoreController {
|
|
public class TSyncExamStudentScoreController {
|
|
|
|
|
|
@@ -80,12 +74,6 @@ public class TSyncExamStudentScoreController {
|
|
@Resource
|
|
@Resource
|
|
AsyncScoreBatchDownloadService asyncScoreBatchDownloadService;
|
|
AsyncScoreBatchDownloadService asyncScoreBatchDownloadService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- TeachcloudCommonService teachcloudCommonService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- FileStoreUtil fileStoreUtil;
|
|
|
|
-
|
|
|
|
@ApiOperation(value = "成绩归档查询列表")
|
|
@ApiOperation(value = "成绩归档查询列表")
|
|
@ApiResponses({@ApiResponse(code = 200, message = "成绩查询信息", response = TSyncExamStudentScoreResult.class)})
|
|
@ApiResponses({@ApiResponse(code = 200, message = "成绩查询信息", response = TSyncExamStudentScoreResult.class)})
|
|
@RequestMapping(value = "/score/list", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/score/list", method = RequestMethod.POST)
|
|
@@ -138,50 +126,24 @@ public class TSyncExamStudentScoreController {
|
|
}
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "成绩动态轨迹图下载")
|
|
@ApiOperation(value = "成绩动态轨迹图下载")
|
|
- @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = Result.class)})
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = EditResult.class)})
|
|
@RequestMapping(value = "/score/download", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/score/download", method = RequestMethod.POST)
|
|
- public Result download(@ApiParam(value = "考试id", required = true) @RequestParam String examStudentId) throws Exception {
|
|
|
|
|
|
+ @Transactional
|
|
|
|
+ public Result download(@ApiParam(value = "学号", required = true) @RequestParam String studentCode) throws Exception {
|
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
QueryWrapper<TSyncExamStudentScore> tSyncExamStudentScoreQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TSyncExamStudentScore> tSyncExamStudentScoreQueryWrapper = new QueryWrapper<>();
|
|
- tSyncExamStudentScoreQueryWrapper.lambda().eq(TSyncExamStudentScore::getExamStudentId, SystemConstant.convertIdToLong(examStudentId));
|
|
|
|
|
|
+ tSyncExamStudentScoreQueryWrapper.lambda().eq(TSyncExamStudentScore::getSchoolId, sysUser.getSchoolId())
|
|
|
|
+ .eq(TSyncExamStudentScore::getStudentCode, studentCode);
|
|
TSyncExamStudentScore tSyncExamStudentScore = tSyncExamStudentScoreService.getOne(tSyncExamStudentScoreQueryWrapper);
|
|
TSyncExamStudentScore tSyncExamStudentScore = tSyncExamStudentScoreService.getOne(tSyncExamStudentScoreQueryWrapper);
|
|
Optional.ofNullable(tSyncExamStudentScore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("考生不存在"));
|
|
Optional.ofNullable(tSyncExamStudentScore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("考生不存在"));
|
|
-
|
|
|
|
- JSONObject jsonObject = null;
|
|
|
|
- String path = null;
|
|
|
|
- if (Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
|
|
|
|
- String format = tSyncExamStudentScore.getSheetUrls().substring(tSyncExamStudentScore.getSheetUrls().lastIndexOf("."), tSyncExamStudentScore.getSheetUrls().length());
|
|
|
|
- boolean oss = dictionaryConfig.sysDomain().isOss();
|
|
|
|
- LocalDateTime nowTime = LocalDateTime.now();
|
|
|
|
- StringJoiner stringJoiner = new StringJoiner("");
|
|
|
|
- stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
|
|
|
|
- StringJoiner dirJpgName = new StringJoiner("");
|
|
|
|
- dirJpgName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
|
|
|
|
- .add(String.valueOf(nowTime.getYear())).add(File.separator)
|
|
|
|
- .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
|
|
|
|
- .add(String.format("%02d", nowTime.getDayOfMonth()))
|
|
|
|
- .add(File.separator).add(SystemConstant.getUuid()).add(format);
|
|
|
|
- File fileTarget = new File(stringJoiner.toString() + dirJpgName.toString());
|
|
|
|
- if (!fileTarget.exists()) {
|
|
|
|
- fileTarget.getParentFile().mkdirs();
|
|
|
|
- fileTarget.createNewFile();
|
|
|
|
- }
|
|
|
|
- File sheetFile = new File(tSyncExamStudentScore.getSheetUrls());
|
|
|
|
- ImageTrajectoryUtil.createImage(sheetFile, fileTarget, 10, 10);
|
|
|
|
- if (oss) {
|
|
|
|
- fileStoreUtil.ossUpload(dirJpgName.toString(), fileTarget, DigestUtils.md5Hex(new FileInputStream(fileTarget)), UploadFileEnum.FILE.getFssType());
|
|
|
|
- jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
|
|
|
|
- jsonObject.put(SystemConstant.PATH, dirJpgName.toString());
|
|
|
|
- path = teachcloudCommonService.filePreview(dirJpgName.toString());
|
|
|
|
- } else {
|
|
|
|
- jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
|
|
|
|
- jsonObject.put(SystemConstant.PATH, stringJoiner.toString() + dirJpgName.toString());
|
|
|
|
- path = stringJoiner.toString() + dirJpgName.toString();
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- jsonObject = JSONObject.parseObject(tSyncExamStudentScore.getTrajectoryUrls());
|
|
|
|
- path = teachcloudCommonService.filePreview((String) jsonObject.get(SystemConstant.PATH));
|
|
|
|
|
|
+ tSyncExamStudentScore = tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, ImageTrajectoryEnum.PREVIEW);
|
|
|
|
+ boolean update = Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls()) ? true : false;
|
|
|
|
+ tSyncExamStudentScore = tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, ImageTrajectoryEnum.PREVIEW);
|
|
|
|
+ Optional.ofNullable(tSyncExamStudentScore.getTrajectoryUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("资源未获取到,请稍候再试"));
|
|
|
|
+ if (update || Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
|
|
|
|
+ tSyncExamStudentScoreService.updateById(tSyncExamStudentScore);
|
|
}
|
|
}
|
|
- return ResultUtil.ok(new EditResult(path));
|
|
|
|
|
|
+ return ResultUtil.ok(new EditResult(tSyncExamStudentScore.getPath()));
|
|
}
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "成绩动态轨迹图一键下载")
|
|
@ApiOperation(value = "成绩动态轨迹图一键下载")
|