/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.evaluate.service.impl; 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.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.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.vo.EvaluateTaskVO; import org.springblade.modules.utils.DateUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; /** * 评优任务表 服务实现类 * * @author aix * @since 2024-01-05 */ @Service @AllArgsConstructor public class EvaluateTaskServiceImpl extends BaseServiceImpl implements IEvaluateTaskService { private final IEvaluateTaskCategoryService evaluateTaskCategoryService; private final IEvaluateTaskCategoryCandidateService evaluateTaskCategoryCandidateService; private final IEvaluateTaskReferrerService evaluateTaskReferrerService; @Override public IPage selectEvaluateTaskPage(IPage 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 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 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 ids) { boolean ret = super.deleteLogic(ids); if (ret) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("evaluate_task_id",ids); List 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; } @Override public List exportEvaluateTask(Wrapper queryWrapper) { List evaluateTaskList = baseMapper.exportEvaluateTask(queryWrapper); //evaluateTaskList.forEach(evaluateTask -> { // evaluateTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, EvaluateTask.getType())); //}); return evaluateTaskList; } }