package com.hc.plan.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hc.common.exception.TrainingException;
import com.hc.plan.entity.Plan;
import com.hc.plan.entity.PlanCourse;
import com.hc.plan.entity.PlanStaff;
import com.hc.plan.entity.vo.PlanQuery;
import com.hc.plan.entity.vo.PlanVo;
import com.hc.plan.mapper.PlanMapper;
import com.hc.plan.service.PlanCourseService;
import com.hc.plan.service.PlanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hc.plan.service.PlanStaffService;
import net.bytebuddy.implementation.bytecode.Throw;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* <p>
* 服务实现类
* </p>
*
* @author houcheng
* @since 2021-03-26
*/
@Service
public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
@Autowired
private PlanCourseService planCourseService;
@Autowired
private PlanStaffService planStaffService;
@Override
public void pageQueryPlan(Page<Plan> pageParam, PlanQuery planQuery) {
QueryWrapper<Plan> wrapper = new QueryWrapper<>();
if (planQuery != null) {
if (StringUtils.isNotEmpty(planQuery.getName())) {
wrapper.like("name", planQuery.getName());
}
if (StringUtils.isNotEmpty(planQuery.getTeacherId())) {
wrapper.eq("teacher_id", planQuery.getTeacherId());
}
if (StringUtils.isNotEmpty(planQuery.getBeginTime())) {
wrapper.ge("begin_time", planQuery.getBeginTime());
}
if (StringUtils.isNotEmpty(planQuery.getEndTime())) {
wrapper.le("end_time", planQuery.getEndTime());
}
}
baseMapper.selectPage(pageParam, wrapper);
}
@Override
public PlanVo getPlanVoById(String planId) {
PlanVo planVo = new PlanVo();
// 查询主表数据
Plan plan = baseMapper.selectById(planId);
// 封装主表数据
planVo.setName(plan.getName());
planVo.setContent(plan.getContent());
planVo.setPurpose(plan.getPurpose());
planVo.setScore(plan.getScore());
planVo.setTeacherId(plan.getTeacherId());
List<Date> dates = new ArrayList<>();
dates.add(plan.getBeginTime());
dates.add(plan.getEndTime());
planVo.setDate(dates);
// 查询计划课程表数据
QueryWrapper<PlanCourse> planCourseQueryWrapper = new QueryWrapper<>();
planCourseQueryWrapper.eq("plan_id", planId);
List<PlanCourse> list = planCourseService.list(planCourseQueryWrapper.select("course_id"));
List<String> courses = new ArrayList<>();
for (PlanCourse planCourse : list) {
courses.add(planCourse.getCourseId());
}
// 查询计划职工表
QueryWrapper<PlanStaff> planStaffQueryWrapper = new QueryWrapper<>();
planStaffQueryWrapper.eq("plan_id", planId);
List<PlanStaff> planStaffList = planStaffService.list(planStaffQueryWrapper.select("staff_id"));
List<String> staffs = new ArrayList<>();
for (PlanStaff planStaff : planStaffList) {
staffs.add(planStaff.getStaffId());
}
// 设置课程和职工相关信息
planVo.setCourses(courses);
planVo.setStaffs(staffs);
return planVo;
}
@Override
public boolean addPlan(PlanVo planVo, String status) {
Plan plan = new Plan();
// 主表插入计划基本信息
plan.setName(planVo.getName());
plan.setContent(planVo.getContent());
plan.setPurpose(planVo.getPurpose());
plan.setTeacherId(planVo.getTeacherId());
plan.setScore(planVo.getScore());
plan.setBeginTime(planVo.getDate().get(0));
plan.setEndTime(planVo.getDate().get(1));
plan.setStatus(status);
int planLine = baseMapper.insert(plan);
// 计划课程表插入计划内课程相关信息,在计划基本信息表插入成功的前提下才能解析计划课程表进行插入操作
if (planLine > 0) {
// 可能包含多条课程,挨个解析,课程list存储格式 courseId + "-" + courseName
for (String s : planVo.getCourses()) {
PlanCourse planCourse = new PlanCourse();
planCourse.setCourseId(s);
planCourse.setPlanId(plan.getId());
boolean planCourseSuccess = planCourseService.save(planCourse);
if (!planCourseSuccess) {
throw new TrainingException(500, "计划课程表表插入失败!");
}
}
// 计划职工表添加计划内职工相关信息,上面两个表插入成功才能进行第三步插入
// 多个职工信息,遍历获取
for (String s : planVo.getStaffs()) {
PlanStaff planStaff = new PlanStaff();
planStaff.setPlanId(plan.getId());
planStaff.setStaffId(s);
planStaff.setTeacherId(planVo.getTeacherId());
boolean planStaffSuccess = planStaffService.save(planStaff);
if (!planStaffSuccess) {
throw new TrainingException(500, "计划职工表插入失败!");
}
}
return true;
} else {
return false;
}
}
@Override
public boolean updatePlan(String planId, PlanVo planVo, String status) {
// 更新计划职工表信息
List<String> staffs = planVo.getStaffs();
// 先查询再更新
QueryWrapper<PlanStaff> planStaffQueryWrapper = new QueryWrapper<>();
planStaffQueryWrapper.eq("plan_id", planId);
List<PlanStaff> planStaffList = planStaffService.list(planStaffQueryWrapper);
List<String> oldStaffs = new ArrayList<>();
for (PlanStaff planStaff : planStaffList) {
// 项目负责人变更的话也需要及时更新
if (!planStaff.getTeacherId().equals(planVo.getTeacherId())) {
planStaff.setTeacherId(planVo.getTeacherId());
}
oldStaffs.add(planStaff.getStaffId());
// 不在最新职工信息中的都删掉
if (!staffs.contains(planStaff.getStaffId())) {
planStaffService.removeById(planStaff.getId());
}
}
// 对已有的更新
if (planStaffList.size() != 0) {
planStaffService.updateBatchById(planStaffList);
}
// 再次循环加入准备更新的list中
for (String s : staffs) {
// 不包括s,就要加入待更新队列中
if (!oldStaffs.contains(s)) {
PlanStaff planStaff = new PlanStaff();
planStaff.setPlanId(planId);
planStaff.setTeacherId(planVo.getTeacherId());
planStaff.setStaffId(s);
planStaffService.save(planStaff);
}
}
// 更新计划课程表信息
List<String> courses = planVo.getCourses();
QueryWrapper<PlanCourse> planCourseQueryWrapper = new QueryWrapper<>();
planCourseQueryWrapper.eq("plan_id", planId);
List<PlanCourse> planCourseList = planCourseService.list(planCourseQueryWrapper);
List<String> oldCourses = new ArrayList<>();
for (PlanCourse planCourse : planCourseList) {
oldCourses.add(planCourse.getCourseId());
if (!courses.contains(planCourse.getCourseId())) {
planCourseService.removeById(planCourse.getId());
}
}
// 执行更新
if (planCourseList.size() !=
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip 【备注】 项目多为高分毕设,评审平均分达到95分以上,都经过本地验证,运行OK后上传,可直接运行起来。 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java、JavaScript、c#、游戏开发、小程序开发学习者、深度学习等专业方向。 也可作为课程设计、期末大作业。包含:项目源码、数据库、项目说明等,该项目可以直接作为毕设、课程设计使用。 也可以用来学习参考借鉴!
资源推荐
资源详情
资源评论
收起资源包目录
基于java的前后端分离企业职工培训网站管理系统源码(含sql).zip (449个子文件)
.babelrc 229B
skin.min.css 42KB
global.css 36KB
web.css 20KB
visualblocks.css 5KB
sign.css 4KB
content.min.css 4KB
content.inline.min.css 3KB
iconfont.css 3KB
prism.css 2KB
reset.css 1KB
theme.css 837B
.editorconfig 243B
.editorconfig 207B
tinymce.eot 18KB
tinymce-small.eot 9KB
iconfont.eot 3KB
.eslintignore 34B
loading.gif 13KB
default-img.gif 11KB
loding.gif 4KB
avatar-boy.gif 4KB
default-tea-img.gif 3KB
loader.gif 3KB
default-img_old.gif 2KB
v-loading.gif 1KB
smiley-cool.gif 354B
smiley-wink.gif 350B
smiley-smile.gif 344B
smiley-laughing.gif 343B
smiley-foot-in-mouth.gif 342B
smiley-frown.gif 340B
smiley-surprised.gif 338B
smiley-kiss.gif 338B
smiley-undecided.gif 337B
smiley-yell.gif 336B
smiley-innocent.gif 336B
smiley-embarassed.gif 331B
smiley-cry.gif 329B
smiley-tongue-out.gif 328B
smiley-sealed.gif 323B
smiley-money-mouth.gif 321B
object.gif 152B
anchor.gif 53B
trans.gif 43B
.gitignore 171B
.gitignore 92B
.gitkeep 0B
index.html 444B
favicon.ico 1KB
favicon.ico 1KB
aliyun-java-vod-upload-1.4.14.jar 116KB
PlanServiceImpl.java 9KB
CourseServiceImpl.java 7KB
ChapterServiceImpl.java 6KB
StaffServiceImpl.java 6KB
VodTest.java 6KB
VideoServiceImpl.java 5KB
StaffVideoController.java 5KB
AnswerServiceImpl.java 4KB
QuestionController.java 4KB
LoginController.java 4KB
CourseFrontController.java 4KB
VideoController.java 4KB
CourseController.java 4KB
AnswerController.java 4KB
BannerController.java 4KB
StaffVideoServiceImpl.java 4KB
PlanController.java 4KB
CourseCommentController.java 3KB
PlanStaffController.java 3KB
RedisConfig.java 3KB
CategoryListener.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
TeacherController.java 3KB
StaffCourseController.java 3KB
PlanStaffServiceImpl.java 3KB
JwtUtils.java 3KB
StaffCourseServiceImpl.java 3KB
CourseService.java 3KB
CourseCategoryServiceImpl.java 2KB
SwaggerConfig.java 2KB
SwaggerController.java 2KB
VideoServiceImpl.java 2KB
ChapterController.java 2KB
Course.java 2KB
StaffController.java 2KB
Plan.java 2KB
VideoController.java 2KB
AdminController.java 2KB
AdminServiceImpl.java 2KB
TrainingResult.java 2KB
FileServiceImpl.java 2KB
Video.java 2KB
CourseComment.java 2KB
Answer.java 2KB
共 449 条
- 1
- 2
- 3
- 4
- 5
资源评论
onnx
- 粉丝: 9967
- 资源: 5626
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功