guoshilong
2023-04-04 3e7f2ef80c9fe9853889824aa99b37ccc13b75e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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());
        });
    }
}