package com.yuanchu.mom.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.dto.PersonTrainingDetailedDto; import com.yuanchu.mom.dto.PersonTrainingRecordDto; import com.yuanchu.mom.dto.PersonTrainingRecordSubmitDto; import com.yuanchu.mom.excel.PersonTrainingDetailedUpload; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.numgen.NumberGenerator; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.mapper.PersonTrainingDetailedMapper; import com.yuanchu.mom.service.DepartmentLimsService; import com.yuanchu.mom.service.PersonTrainingDetailedService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.service.PersonTrainingRecordService; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; /** *

* 培训计划详情 服务实现类 *

* * @author * @since 2024-10-11 01:46:27 */ @Service @Transactional(rollbackFor = Exception.class) @AllArgsConstructor public class PersonTrainingDetailedServiceImpl extends ServiceImpl implements PersonTrainingDetailedService { private DepartmentLimsService departmentLimsService; private UserMapper userMapper; @Autowired private GetLook getLook; private NumberGenerator numberGenerator; @Override public void importExcel(List list, Integer planId) { List personTrainingDetailedList = new ArrayList<>(); list.forEach(i -> { PersonTrainingDetailed personTrainingDetailed = new PersonTrainingDetailed(); BeanUtils.copyProperties(i, personTrainingDetailed); // 匹配举办部门 DepartmentLims departmentLims = departmentLimsService.getOne(Wrappers.lambdaQuery() .eq(DepartmentLims::getName, i.getHoldingDepartment())); if (ObjectUtils.isEmpty(departmentLims)) { throw new ErrorException("未匹配到举办部门:" + i.getHoldingDepartment()); } personTrainingDetailed.setHoldingDepartment(departmentLims.getId()); // 匹配讲师 User user = userMapper.selectOne(Wrappers.lambdaQuery() .eq(User::getName, i.getTrainingLecturerName())); if (ObjectUtils.isEmpty(user)) { throw new ErrorException("未找到该讲师:" + i.getTrainingLecturerName()); } personTrainingDetailed.setTrainingLecturerId(user.getId()); personTrainingDetailed.setPlanId(planId); personTrainingDetailed.setState(3); String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date()); String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date()); String processNumber = numberGenerator.generateNumberWithPrefix(4, "KC" + month + "-" + year + month, PersonTrainingDetailed::getCourseCode); personTrainingDetailed.setCourseCode(processNumber); personTrainingDetailedList.add(personTrainingDetailed); }); // 批量新增 if (CollectionUtils.isNotEmpty(personTrainingDetailedList)) { baseMapper.insertBatchSomeColumn(personTrainingDetailedList); } } @Override public void deleteAnnualPlanDetailTable(String ids) { String[] split = ids.split(","); if (split.length > 0) { for (String s : split) { baseMapper.deleteById(s); } } } @Override public IPage queryTheAnnualPlanDetailsTable(Page page, String trainingLecturerName, String courseCode, String trainingDate, Integer id, Integer userId) { Map map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter"); return baseMapper.queryTheAnnualPlanDetailsTable(page, trainingLecturerName, courseCode, trainingDate, id, userId, map1.get("userId")); } }