|
|
@@ -114,9 +114,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTaskToRole::getEduTrainingTaskId, idList));
|
|
|
Map<Long, List<CoreEduTrainingTaskToRole>> listMap = roleList.stream().collect(Collectors.groupingBy(CoreEduTrainingTaskToRole::getEduTrainingTaskId));
|
|
|
final List<CoreEduTrainingTaskPageVo> records = pageData.getRecords();
|
|
|
- final String staticPathPrefix = getStaticPathPrefix();
|
|
|
for (CoreEduTrainingTaskPageVo record : records) {
|
|
|
- dealData(record, records, listMap, staticPathPrefix);
|
|
|
+ dealData(record, records, listMap);
|
|
|
}
|
|
|
}
|
|
|
//抓换为TableDataInfo适配前端
|
|
|
@@ -127,10 +126,11 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
return RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.getStaticPathPrefix(), ErrorMsgConstants.QUERY_STATICS_SAVE_PATH_ERROR);
|
|
|
}
|
|
|
|
|
|
- private void dealData(CoreEduTrainingTaskPageVo record, List<CoreEduTrainingTaskPageVo> records, Map<Long, List<CoreEduTrainingTaskToRole>> listMap, String staticsPath) {
|
|
|
+ private void dealData(CoreEduTrainingTaskPageVo record, List<CoreEduTrainingTaskPageVo> records, Map<Long, List<CoreEduTrainingTaskToRole>> listMap) {
|
|
|
record.setNo(records.indexOf(record) + 1);
|
|
|
record.setTypeText(EduTrainingType.getName(record.getType()));
|
|
|
record.setStatusText(EduTrainingDoStatus.getName(record.getStatus()));
|
|
|
+
|
|
|
List<CoreEduTrainingTaskToRole> coreEduTrainingTaskToRoles = listMap.get(record.getId());
|
|
|
if (ObjectUtil.isEmpty(coreEduTrainingTaskToRoles)) {
|
|
|
return;
|
|
|
@@ -139,11 +139,11 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
record.setTaskRoleNameList(coreEduTrainingTaskToRoles.stream().map(CoreEduTrainingTaskToRole::getRoleName).collect(Collectors.joining(",")));
|
|
|
List<CoreEduTrainingTaskToUser> userList = taskToUserMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
|
|
|
.eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, record.getId()));
|
|
|
- int signNums = (int) userList.stream().filter(user -> user.getSign() == 1).count();
|
|
|
- record.setSignNums(signNums + "/" + userList.size());
|
|
|
- if (ObjectUtil.isNotEmpty(record.getPdfUrl())) {
|
|
|
- record.setPdfUrl(staticsPath + record.getPdfUrl());
|
|
|
- }
|
|
|
+ int signNums = (int) userList.stream().filter(user -> user.getSign() == 1 && ObjectUtil.equal(user.getType(), 1)).count();
|
|
|
+ int totalNums = (int) userList.stream().filter(user -> ObjectUtil.equal(user.getType(), 1)).count();
|
|
|
+ record.setSignNums(signNums + "/" + totalNums);
|
|
|
+ record.setUserList(userList);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -162,15 +162,13 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
public CoreEduTrainingTaskDetailVo selectCoreEduTrainingTaskById(Long id) {
|
|
|
CoreEduTrainingTaskDetailVo detailVo = coreEduTrainingTaskMapper.selectEduTrainingTaskDetail(id);
|
|
|
List<CoreEduTrainingTaskToUser> userList = taskToUserMapper.selectByMap(MapUtil.of("edu_training_task_id", id));
|
|
|
+ detailVo.setTypeText(EduTrainingType.getName(detailVo.getType()));
|
|
|
if (ObjectUtil.isNotEmpty(detailVo.getFile())) {
|
|
|
detailVo.setFileList(JSON.parseArray(detailVo.getFile(), String.class));
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(userList)) {
|
|
|
detailVo.setTaskUserList(userList);
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(detailVo.getPdfUrl())) {
|
|
|
- detailVo.setPdfUrl(getStaticPathPrefix() + detailVo.getPdfUrl());
|
|
|
- }
|
|
|
return detailVo;
|
|
|
}
|
|
|
|
|
|
@@ -213,10 +211,12 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
coreEduTrainingTask.setContent(request.getContent());
|
|
|
coreEduTrainingTask.setNote(request.getNote());
|
|
|
coreEduTrainingTask.setRecorderId(SecurityUtils.getUserId());
|
|
|
+ coreEduTrainingTask.setImageList(request.getImageList());
|
|
|
//主持人默认取网点负责人,具体还没落实,暂时处理成这样 TODO
|
|
|
coreEduTrainingTask.setHostId(SecurityUtils.getUserId());
|
|
|
List<CoreEduTrainingTaskToUser> taskUserList = request.getTaskUserList();
|
|
|
if (ObjectUtil.isNotEmpty(taskUserList)) {
|
|
|
+ checkTheSameUser(taskUserList);
|
|
|
for (CoreEduTrainingTaskToUser taskToUser : taskUserList) {
|
|
|
taskToUser.setEduTrainingTaskId(request.getId());
|
|
|
taskToUser.setSign(0);
|
|
|
@@ -226,13 +226,6 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
if (ObjectUtil.equal(request.getSubmitType(), 2)) {
|
|
|
coreEduTrainingTask.setStatus(EduTrainingDoStatus.WAIT_SIGN.getCode());
|
|
|
}
|
|
|
- //判断是否已全部完成签名,如果是将任务修改成已完成
|
|
|
- Long unSignNums = taskToUserMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
|
|
|
- .eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, request.getId())
|
|
|
- .eq(CoreEduTrainingTaskToUser::getSign, 0));
|
|
|
- if (null == unSignNums || unSignNums == 0) {
|
|
|
- coreEduTrainingTask.setStatus(EduTrainingDoStatus.DONE.getCode());
|
|
|
- }
|
|
|
|
|
|
coreEduTrainingTask.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getId().toString());
|
|
|
coreEduTrainingTask.setUpdateTime(DateUtils.getNowDate());
|
|
|
@@ -240,6 +233,19 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
return coreEduTrainingTaskMapper.updateById(coreEduTrainingTask);
|
|
|
}
|
|
|
|
|
|
+ private void checkTheSameUser(List<CoreEduTrainingTaskToUser> taskUserList) {
|
|
|
+ Map<Integer, List<CoreEduTrainingTaskToUser>> listMap = taskUserList.stream().collect(Collectors.groupingBy(CoreEduTrainingTaskToUser::getType));
|
|
|
+ List<CoreEduTrainingTaskToUser> userList = listMap.get(1);
|
|
|
+ List<CoreEduTrainingTaskToUser> loseUserList = listMap.get(2);
|
|
|
+ if (ObjectUtil.isAllNotEmpty(userList, loseUserList)) {
|
|
|
+ List<Long> collect1 = userList.stream().map(CoreEduTrainingTaskToUser::getUserId).collect(Collectors.toList());
|
|
|
+ List<Long> collect2 = loseUserList.stream().map(CoreEduTrainingTaskToUser::getUserId).collect(Collectors.toList());
|
|
|
+ if (!Collections.disjoint(collect1, collect2)) {
|
|
|
+ throw new SystemException("参与用户与缺席用户存在相同用户!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 批量删除教育任务
|
|
|
*
|
|
|
@@ -379,7 +385,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Integer selectCoreEduTrainingTaskSign(CoreEduTrainingTaskSignDto request) {
|
|
|
+ public Integer sign(CoreEduTrainingTaskSignDto request) {
|
|
|
+ CoreEduTrainingTask eduTrainingTask = getById(request.getId());
|
|
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
CoreEduTrainingTaskToUser taskToUser = taskToUserMapper.selectOne(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
|
|
|
.eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, request.getId())
|
|
|
@@ -389,18 +396,33 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
throw new SystemException("未获取到当前用户于该教育培训的详细信息");
|
|
|
}
|
|
|
taskToUser.setSign(1);
|
|
|
+ dealImageUrl(request.getSignImage());
|
|
|
taskToUser.setSignImage(request.getSignImage());
|
|
|
final int sign = taskToUserMapper.updateSign(taskToUser);
|
|
|
+ //判断是否已全部完成签名,如果是将任务修改成已完成
|
|
|
+ Long unSignNums = taskToUserMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
|
|
|
+ .eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, request.getId())
|
|
|
+ .eq(CoreEduTrainingTaskToUser::getType, 1)
|
|
|
+ .eq(CoreEduTrainingTaskToUser::getSign, 0));
|
|
|
+ if (null == unSignNums || unSignNums == 0) {
|
|
|
+ eduTrainingTask.setStatus(EduTrainingDoStatus.DONE.getCode());
|
|
|
+ coreEduTrainingTaskMapper.updateById(eduTrainingTask);
|
|
|
+ }
|
|
|
final List<CoreEduTrainingTaskToUser> taskToUserList = taskToUserMapper.selectList(new LambdaUpdateWrapper<CoreEduTrainingTaskToUser>()
|
|
|
.eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, request.getId()));
|
|
|
//如果存在用户数据,筛选出参与人员中签名图片为空的数据,如果count等于0说明全部签名完成
|
|
|
- final long count = taskToUserList.stream().filter(user -> ObjectUtil.equal(user.getType(), 1) && ObjectUtil.isEmpty(user.getSignImage())).count();
|
|
|
+ final long count = taskToUserList.stream().filter(user -> ObjectUtil.equal(user.getType(), 1) && ObjectUtil.equal(user.getSign(), 0)).count();
|
|
|
if (ObjectUtil.isNotEmpty(taskToUserList) && count < 1) {
|
|
|
buildEduPdf(request.getId());
|
|
|
}
|
|
|
return sign;
|
|
|
}
|
|
|
|
|
|
+ private void dealImageUrl(String signImage) {
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AjaxResult buildEduPdf(Long id) {
|
|
|
CoreEduTrainingTaskDetailVo task = this.selectCoreEduTrainingTaskById(id);
|