package cn.gistack.sm.exam.service.impl;
|
|
import cn.gistack.sm.exam.entity.ExamPlan;
|
import cn.gistack.sm.exam.entity.ExamRating;
|
import cn.gistack.sm.exam.entity.ExamScore;
|
import cn.gistack.sm.exam.entity.ExamTarget;
|
import cn.gistack.sm.exam.mapper.ExamPlanMapper;
|
import cn.gistack.sm.exam.service.IExamPlanService;
|
import cn.gistack.sm.exam.service.IExamRatingService;
|
import cn.gistack.sm.exam.service.IExamScoreService;
|
import cn.gistack.sm.exam.service.IExamTargetService;
|
import cn.gistack.sm.exam.vo.ExamPlanVO;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.core.mp.support.Condition;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* @Description: 考核方案
|
* @Author: jeecg-boot
|
* @Date: 2022-11-09
|
* @Version: V1.0
|
*/
|
@Service
|
@Transactional
|
@AllArgsConstructor
|
public class ExamPlanServiceImpl extends BaseServiceImpl<ExamPlanMapper, ExamPlan> implements IExamPlanService {
|
IExamTargetService targetService;
|
IExamScoreService examScoreService;
|
IExamRatingService ratingService;
|
|
private final static String JOBCLASSNAME = "org.jeecg.modules.SM.exam.quartz.job.ExamPlanUserJob";
|
|
/**
|
* 自定义分页列表查询
|
*
|
* @param examPlan 考核方案 vo 对象
|
* @param page 分页对象
|
* @return
|
*/
|
@Override
|
public IPage<ExamPlanVO> selectExamPlanPage(IPage<ExamPlanVO> page, ExamPlan examPlan){
|
return page.setRecords(baseMapper.selectExamPlanPage(page,examPlan));
|
}
|
|
@Override
|
public Boolean saveAll(ExamPlanVO entity) {
|
boolean savePlan = this.save(entity);
|
entity.getScoreList().forEach(item->{
|
item.setPlanId(entity.getId().toString());
|
});
|
entity.getRatingList().forEach(item->{
|
item.setPlanId(entity.getId().toString());
|
});
|
entity.getTargetList().forEach(item->{
|
item.setPlanId(entity.getId().toString());
|
});
|
boolean saveTarget = targetService.saveBatch(entity.getTargetList());
|
boolean saveScore = examScoreService.saveBatch(entity.getScoreList());
|
boolean saveRating = ratingService.saveBatch(entity.getRatingList());
|
|
return savePlan&&saveTarget&&saveScore&&saveRating;
|
}
|
|
@Override
|
public Boolean updateAll(ExamPlanVO examPlan) {
|
boolean upPlan = this.updateById(examPlan);
|
|
this.deleteAll(examPlan.getId().toString());
|
|
examPlan.getTargetList().forEach(target->{
|
if (StringUtils.isEmpty(target.getPlanId())){
|
target.setPlanId(examPlan.getId().toString());
|
}
|
targetService.save(target);
|
});
|
|
examPlan.getRatingList().forEach(rating->{
|
if (StringUtils.isEmpty(rating.getPlanId())){
|
rating.setPlanId(examPlan.getId().toString());
|
}
|
ratingService.save(rating);
|
});
|
|
examPlan.getScoreList().forEach(score->{
|
if (StringUtils.isEmpty(score.getPlanId())){
|
score.setPlanId(examPlan.getId().toString());
|
}
|
examScoreService.save(score);
|
});
|
|
|
return upPlan;
|
}
|
|
@Override
|
public Boolean enableOrDisable(String id, Integer value) {
|
boolean res = baseMapper.enableOrDisable(id,value);
|
if (value == 1) {
|
ExamPlan examPlan = baseMapper.selectById(id);
|
// quartzJobService.schedulerAdd(id, JOBCLASSNAME, examPlan.getCronExpression(), examPlan.getId());
|
} else {
|
// quartzJobService.schedulerDelete(id);
|
}
|
return res;
|
}
|
|
public void deleteAll(String planId){
|
List<ExamTarget> targetList = targetService.list(Condition.getQueryWrapper(new ExamTarget().setPlanId(planId)));
|
targetList.forEach(target->{
|
targetService.removeById(target.getId());
|
});
|
|
List<ExamRating> ratingList = ratingService.list(Condition.getQueryWrapper(new ExamRating().setPlanId(planId)));
|
ratingList.forEach(rating->{
|
ratingService.removeById(rating.getId());
|
});
|
|
List<ExamScore> scoreList = examScoreService.list(Condition.getQueryWrapper(new ExamScore().setPlanId(planId)));
|
scoreList.forEach(score->{
|
examScoreService.removeById(score.getId());
|
});
|
}
|
}
|