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