| | |
| | | */ |
| | | package org.springblade.modules.evaluate.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springblade.modules.evaluate.dto.EvaluateTaskDTO; |
| | | import org.springblade.modules.evaluate.entity.EvaluateTaskCategoryEntity; |
| | | import org.springblade.modules.evaluate.entity.EvaluateTaskEntity; |
| | | import org.springblade.modules.evaluate.entity.EvaluateTaskSetEntity; |
| | | import org.springblade.modules.evaluate.service.IEvaluateCandidateService; |
| | | import org.springblade.modules.evaluate.service.IEvaluateTaskSetService; |
| | | import org.springblade.modules.evaluate.vo.EvaluateTaskVO; |
| | | import org.springblade.modules.evaluate.excel.EvaluateTaskExcel; |
| | | import org.springblade.modules.evaluate.mapper.EvaluateTaskMapper; |
| | | import org.springblade.modules.evaluate.service.IEvaluateTaskCategoryCandidateService; |
| | | import org.springblade.modules.evaluate.service.IEvaluateTaskCategoryService; |
| | | import org.springblade.modules.evaluate.service.IEvaluateTaskReferrerService; |
| | | import org.springblade.modules.evaluate.service.IEvaluateTaskService; |
| | | import org.springblade.modules.evaluate.wrapper.EvaluateCandidateWrapper; |
| | | import org.springblade.modules.evaluate.wrapper.EvaluateTaskWrapper; |
| | | import org.springblade.modules.system.entity.Dept; |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IDeptService; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.evaluate.vo.EvaluateTaskVO; |
| | | import org.springblade.modules.utils.DateUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 评优任务表 服务实现类 |
| | | * |
| | | * @author aix |
| | | * @since 2023-12-08 |
| | | * @since 2024-01-05 |
| | | */ |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class EvaluateTaskServiceImpl extends BaseServiceImpl<EvaluateTaskMapper, EvaluateTaskEntity> implements IEvaluateTaskService { |
| | | |
| | | private final IEvaluateTaskSetService evaluateTaskSetService; |
| | | private final IUserService userService; |
| | | private final IEvaluateTaskCategoryService evaluateTaskCategoryService; |
| | | |
| | | private final IDeptService deptService; |
| | | private final IEvaluateTaskCategoryCandidateService evaluateTaskCategoryCandidateService; |
| | | |
| | | private final IEvaluateCandidateService evaluateCandidateService; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean save(EvaluateTaskVO vo) { |
| | | Boolean ret = super.save(EvaluateTaskWrapper.build().entityPO(vo)); |
| | | if (ret) { |
| | | ret = evaluateCandidateService.saveBatch(vo.getCandidateEntities()); |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean updateById(EvaluateTaskVO vo) { |
| | | if (null == vo.getId()) |
| | | return false; |
| | | |
| | | Boolean ret = super.updateById(EvaluateTaskWrapper.build().entityPO(vo)); |
| | | if (ret) { |
| | | ret = evaluateCandidateService.saveOrUpdateBatch(vo.getCandidateEntities()); |
| | | } |
| | | return ret; |
| | | } |
| | | private final IEvaluateTaskReferrerService evaluateTaskReferrerService; |
| | | |
| | | @Override |
| | | public IPage<EvaluateTaskVO> selectEvaluateTaskPage(IPage<EvaluateTaskVO> page, EvaluateTaskVO evaluateTask) { |
| | | return page.setRecords(baseMapper.selectEvaluateTaskPage(page, evaluateTask)); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Boolean saveTaskAndCategory(EvaluateTaskDTO dto) { |
| | | |
| | | if (DateUtils.isBeforeNow(dto.getCandidateCutoffTimeStart())) {// 如果是小于当前日期 修改状态 |
| | | dto.setCandidateState(1); |
| | | } |
| | | |
| | | boolean ret = save(dto); |
| | | if (ret) { |
| | | List<EvaluateTaskCategoryEntity> evaluateTaskCategoryEntityList = dto.getCategoryEntities().stream().map(categoryEntity -> { |
| | | categoryEntity.setEvaluateTaskId(dto.getId()); // 给每个categoryEntity对象的EvaluateTaskId属性设置新值 |
| | | return categoryEntity; // 返回修改后的对象 |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | evaluateTaskCategoryService.saveOrUpdateBatch(evaluateTaskCategoryEntityList); |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Boolean updateTaskAndCategory(EvaluateTaskDTO dto) { |
| | | |
| | | if (DateUtils.isBeforeNow(dto.getCandidateCutoffTimeStart())) {//如果是小于当前日期 修改状态 |
| | | dto.setCandidateState(1); |
| | | } |
| | | |
| | | boolean ret = updateById(dto); |
| | | if (ret) { |
| | | |
| | | //先删除 |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("evaluate_task_id", dto.getId()); |
| | | evaluateTaskCategoryService.remove(queryWrapper); |
| | | |
| | | List<EvaluateTaskCategoryEntity> evaluateTaskCategoryEntityList = dto.getCategoryEntities().stream().map(categoryEntity -> { |
| | | categoryEntity.setEvaluateTaskId(dto.getId()); // 给每个categoryEntity对象的EvaluateTaskId属性设置新值 |
| | | return categoryEntity; // 返回修改后的对象 |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | evaluateTaskCategoryService.saveOrUpdateBatch(evaluateTaskCategoryEntityList); |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | @Override |
| | | public boolean deleteLogic(List<Long> ids) { |
| | | boolean ret = super.deleteLogic(ids); |
| | | if (ret) { |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.in("evaluate_task_id",ids); |
| | | List<EvaluateTaskCategoryEntity> list = evaluateTaskCategoryService.list(queryWrapper); |
| | | evaluateTaskCategoryService.remove(queryWrapper); |
| | | evaluateTaskReferrerService.remove(queryWrapper); |
| | | for (EvaluateTaskCategoryEntity po: list) { |
| | | QueryWrapper qw = new QueryWrapper(); |
| | | qw.eq("evaluate_task_category_id", po.getId()); |
| | | evaluateTaskCategoryCandidateService.remove(qw); |
| | | } |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | |
| | |
| | | // evaluateTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, EvaluateTask.getType())); |
| | | //}); |
| | | return evaluateTaskList; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean deleteLogic(List<Long> ids) { |
| | | boolean ret = super.deleteLogic(ids); |
| | | if (ret) { |
| | | for (Long id:ids) { |
| | | //先删除 |
| | | QueryWrapper<EvaluateTaskSetEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("evaluate_task_id", id); |
| | | evaluateTaskSetService.remove(queryWrapper); |
| | | } |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | } |