|
|
@@ -9,26 +9,24 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
|
|
|
+import com.zhongzheng.modules.company.domain.Company;
|
|
|
import com.zhongzheng.modules.company.domain.CompanyCertificate;
|
|
|
-import com.zhongzheng.modules.staff.bo.StaffCertificateMajorInfo;
|
|
|
+import com.zhongzheng.modules.company.domain.CompanyDepartment;
|
|
|
+import com.zhongzheng.modules.staff.bo.*;
|
|
|
+import com.zhongzheng.modules.staff.domain.*;
|
|
|
+import com.zhongzheng.modules.staff.vo.ExcelStaffVo;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.pagehelper.Page;
|
|
|
-import com.zhongzheng.modules.staff.bo.StaffCertificateAddBo;
|
|
|
-import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
|
|
|
-import com.zhongzheng.modules.staff.bo.StaffCertificateEditBo;
|
|
|
-import com.zhongzheng.modules.staff.domain.StaffCertificate;
|
|
|
import com.zhongzheng.modules.staff.mapper.StaffCertificateMapper;
|
|
|
import com.zhongzheng.modules.staff.vo.StaffCertificateVo;
|
|
|
import com.zhongzheng.modules.staff.service.IStaffCertificateService;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collection;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -200,6 +198,135 @@ public class StaffCertificateServiceImpl extends ServiceImpl<StaffCertificateMap
|
|
|
|
|
|
@Override
|
|
|
public Boolean importStaffCertificateList(MultipartFile file) {
|
|
|
- return null;
|
|
|
+ List<ExcelStaffVo> excelStaffVos = EasyPoiUtil.importExcel(file, 1, 1, ExcelStaffVo.class);
|
|
|
+ if (ObjectUtil.isEmpty(excelStaffVos)) {
|
|
|
+ throw new CustomException("文档数据为空");
|
|
|
+ }
|
|
|
+ Map<String, List<ExcelStaffVo>> excelList = excelStaffVos.stream().collect(Collectors.groupingBy(ExcelStaffVo::getIdCard));
|
|
|
+ excelList.forEach((k, v) -> {
|
|
|
+ List<ExcelStaffVo> excelStaffVosList = excelList.get(k);
|
|
|
+ ExcelStaffVo excelStaffVo = excelStaffVosList.get(0);
|
|
|
+ if (ObjectUtil.isAllNotEmpty(excelStaffVo.getStaffName(), excelStaffVo.getIdCard(), excelStaffVo.getTelephone(), excelStaffVo.getCompanyName())) {
|
|
|
+ List<Company> companies = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, excelStaffVo.getCompanyName()).eq(Company::getStatus, 1));
|
|
|
+ if (ObjectUtil.isNotEmpty(companies)) {
|
|
|
+ Company company = companies.get(0);
|
|
|
+ Staff staff = new Staff();
|
|
|
+ staff.setStaffName(excelStaffVo.getStaffName());
|
|
|
+ staff.setIdCard(excelStaffVo.getIdCard());
|
|
|
+ staff.setTelephone(excelStaffVo.getTelephone());
|
|
|
+ staff.setEmail(excelStaffVo.getEmail());
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getSex())) {
|
|
|
+ Integer sexType = getSexType(excelStaffVo.getSex());
|
|
|
+ staff.setSex(Long.valueOf(sexType));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getBirthday())) {
|
|
|
+ String birthday = excelStaffVo.getBirthday();
|
|
|
+ Long timeSec = DateUtils.dateTimeSec("yyyy/MM/dd", birthday);
|
|
|
+ staff.setBirthday(timeSec);
|
|
|
+ }
|
|
|
+ staff.setNation(excelStaffVo.getNation());
|
|
|
+ staff.setPoliticsFace(excelStaffVo.getPoliticsFace());
|
|
|
+ staff.setHkLocation(excelStaffVo.getHkLocation());
|
|
|
+ staff.setHomeAddress(excelStaffVo.getHomeAddress());
|
|
|
+ staff.setCompanyId(company.getCompanyId());
|
|
|
+ staff.setStaffNumber(excelStaffVo.getStaffNumber());
|
|
|
+ staff.setCompanyName(company.getCompanyName());
|
|
|
+ staff.setDepartmentName(excelStaffVo.getDepartmentName());
|
|
|
+ List<CompanyDepartment> departments = iCompanyDepartmentService.list(new LambdaQueryWrapper<CompanyDepartment>().eq(CompanyDepartment::getDepartmentName, excelStaffVo.getDepartmentName()).eq(CompanyDepartment::getStatus, 1));
|
|
|
+ if (ObjectUtil.isNotEmpty(departments)){
|
|
|
+ CompanyDepartment companyDepartment = departments.get(0);
|
|
|
+ staff.setDepartmentId(companyDepartment.getDepartmentId());
|
|
|
+ }
|
|
|
+ staff.setPosition(excelStaffVo.getPosition());
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getPositionStatus())) {
|
|
|
+ staff.setPositionStatus(Long.valueOf(getPositionStatus(excelStaffVo.getPositionStatus())));
|
|
|
+ }
|
|
|
+ staff.setRecruitmentChannel(excelStaffVo.getRecruitmentChannel());
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getWorkDate())) {
|
|
|
+ staff.setWorkDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getWorkDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getEntryDate())) {
|
|
|
+ staff.setEntryDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getEntryDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getLeaveDate())) {
|
|
|
+ staff.setLeaveDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getLeaveDate()));
|
|
|
+ }
|
|
|
+ staff.setIssuingOrganization(excelStaffVo.getIssuingOrganization());
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getStartDate())) {
|
|
|
+ staff.setStartDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getStartDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(excelStaffVo.getEndDate())) {
|
|
|
+ staff.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getEndDate()));
|
|
|
+ }
|
|
|
+ staff.setCreateTime(DateUtils.getNowTime());
|
|
|
+ staff.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ this.baseMapper.insert(staff);
|
|
|
+ excelStaffVosList.forEach(item -> {
|
|
|
+ List<Staff> staffList = this.baseMapper.selectList(new LambdaQueryWrapper<Staff>().eq(Staff::getIdCard, item.getIdCard()).eq(Staff::getStatus, 1));
|
|
|
+ if (ObjectUtil.isNotEmpty(staffList)) {
|
|
|
+ Staff staff1 = staffList.get(0);
|
|
|
+ StaffEduBg staffEduBg = new StaffEduBg();
|
|
|
+ if (ObjectUtil.isNotEmpty(item.getStartTime())) {
|
|
|
+ staffEduBg.setStartDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getStartTime()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(item.getEndTime())) {
|
|
|
+ staffEduBg.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getEndTime()));
|
|
|
+ }
|
|
|
+ staffEduBg.setStaffId(staff1.getStaffId());
|
|
|
+ staffEduBg.setGraduationSchool(item.getGraduationSchool());
|
|
|
+ staffEduBg.setMajor(item.getMajor());
|
|
|
+ staffEduBg.setLearningType(Long.valueOf(getLearnIngType(item.getLearnType())));
|
|
|
+ staffEduBg.setDegree(Long.valueOf(getLearnIngType(item.getLearnType())));
|
|
|
+ staffEduBg.setCreateTime(DateUtils.getNowTime());
|
|
|
+ staffEduBg.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ staffEduBg.setCompanyId(company.getCompanyId());
|
|
|
+ StaffEduBgAddBo staffEduBgAddBo = BeanUtil.toBean(staffEduBg, StaffEduBgAddBo.class);
|
|
|
+ staffEduBgAddBo.setCreateTime(DateUtils.getNowTime());
|
|
|
+ staffEduBgAddBo.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iStaffEduBgService.insertByAddBo(staffEduBgAddBo);
|
|
|
+ StaffEmergencyContact staffEmergencyContact = new StaffEmergencyContact();
|
|
|
+ staffEmergencyContact.setRelation(item.getRelation());
|
|
|
+ staffEmergencyContact.setCompanyId(company.getCompanyId());
|
|
|
+ staffEmergencyContact.setStaffId(staff1.getStaffId());
|
|
|
+ staffEmergencyContact.setContactName(item.getContactName());
|
|
|
+ staffEmergencyContact.setContactTelephone(item.getContactTelephone());
|
|
|
+ StaffEmergencyContactAddBo staffEmergencyContactAddBo = BeanUtil.toBean(staffEmergencyContact, StaffEmergencyContactAddBo.class);
|
|
|
+ staffEmergencyContactAddBo.setCreateTime(DateUtils.getNowTime());
|
|
|
+ staffEmergencyContactAddBo.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iStaffEmergencyContactService.insertByAddBo(staffEmergencyContactAddBo);
|
|
|
+ StaffBankInfo staffBankInfo = new StaffBankInfo();
|
|
|
+ staffBankInfo.setStaffId(staff1.getStaffId());
|
|
|
+ staffBankInfo.setCompanyId(company.getCompanyId());
|
|
|
+ staffBankInfo.setOpenName(item.getOpenName());
|
|
|
+ staffBankInfo.setOpenBank(item.getOpenBank());
|
|
|
+ staffBankInfo.setBankNumber(item.getBankNumber());
|
|
|
+ StaffBankInfoAddBo staffBankInfoAddBo = BeanUtil.toBean(staffBankInfo, StaffBankInfoAddBo.class);
|
|
|
+ staffBankInfoAddBo.setCreateTime(DateUtils.getNowTime());
|
|
|
+ staffBankInfoAddBo.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iStaffBankInfoService.insertByAddBo(staffBankInfoAddBo);
|
|
|
+ StaffContractArchives staffContractArchives = new StaffContractArchives();
|
|
|
+ staffContractArchives.setStaffId(staff1.getStaffId());
|
|
|
+ staffContractArchives.setCompanyId(company.getCompanyId());
|
|
|
+ staffContractArchives.setArchivesNumber(item.getArchivesNumber());
|
|
|
+ staffContractArchives.setArchivesName(item.getArchivesName());
|
|
|
+ staffContractArchives.setArchivesType(getArchivesType(item.getArchivesType()));
|
|
|
+ if (ObjectUtil.isNotEmpty(item.getSigningDate())) {
|
|
|
+ staffContractArchives.setSigningDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getSigningDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(item.getEffectiveDate())) {
|
|
|
+ staffContractArchives.setEffectiveDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getEffectiveDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(item.getOutDate())) {
|
|
|
+ staffContractArchives.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getOutDate()));
|
|
|
+ }
|
|
|
+ StaffContractArchivesAddBo staffContractArchivesAddBo = BeanUtil.toBean(staffContractArchives, StaffContractArchivesAddBo.class);
|
|
|
+ iStaffContractArchivesService.insertByAddBo(staffContractArchivesAddBo);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|