renqianlong 1 рік тому
батько
коміт
d474001925

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateAddBo.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.staff.bo;
 
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -48,6 +49,12 @@ public class StaffCertificateAddBo {
     /** 证书名称 */
     @ApiModelProperty("证书名称")
     private String certificateName;
+    /** 有效日期开始 */
+    @ApiModelProperty("有效日期开始")
+    private Long effectiveGo;
+    /** 有效日期结束 */
+    @ApiModelProperty("有效日期结束")
+    private Long effectiveEnd;
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")
     private Integer status;

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateEditBo.java

@@ -43,7 +43,12 @@ public class StaffCertificateEditBo {
     /** 证书专业 */
     @ApiModelProperty("证书专业")
     private String certificateMajor;
-
+    /** 有效日期开始 */
+    @ApiModelProperty("有效日期开始")
+    private Long effectiveGo;
+    /** 有效日期结束 */
+    @ApiModelProperty("有效日期结束")
+    private Long effectiveEnd;
     /** 发证时间 */
     @ApiModelProperty("发证时间")
     private Long startTime;

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateQueryBo.java

@@ -60,6 +60,12 @@ public class StaffCertificateQueryBo extends BaseEntity {
 	/** 证书预览 */
 	@ApiModelProperty("证书预览")
 	private String previewImg;
+	/** 有效日期开始 */
+	@ApiModelProperty("有效日期开始")
+	private Long effectiveGo;
+	/** 有效日期结束 */
+	@ApiModelProperty("有效日期结束")
+	private Long effectiveEnd;
 	/** 1有效 0无效 */
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffCertificate.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.staff.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -42,6 +43,10 @@ private static final long serialVersionUID=1L;
     private Long endTime;
     /** 发证机关 */
     private String certificateAddress;
+    /** 有效日期开始 */
+    private Long effectiveGo;
+    /** 有效日期结束 */
+    private Long effectiveEnd;
     /** 预警状态 1:正常 2:已过期 */
     private Integer warningStatus;
     /** 证书预览 */

+ 137 - 10
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffCertificateServiceImpl.java

@@ -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;
+    }
     }
 }

+ 14 - 27
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/ExcelStaffCertificateVo.java

@@ -15,10 +15,6 @@ import lombok.Data;
 @Data
 @ApiModel("员工证书视图对象")
 public class ExcelStaffCertificateVo {
-	/** 证书编号 */
-	@Excel(name = "证书编号")
-	@ApiModelProperty("证书编号")
-	private String certificateNumber;
 	/** 证书名称 */
 	@Excel(name = "*证书名称")
 	@ApiModelProperty("证书名称")
@@ -26,31 +22,23 @@ public class ExcelStaffCertificateVo {
 	/** 证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他 */
 	@Excel(name = "*证书类型")
 	@ApiModelProperty("证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他")
-	private Integer certificateType;
+	private String certificateType;
 	/** 证书专业 */
 	@Excel(name = "专业")
 	@ApiModelProperty("证书专业")
 	private String certificateMajor;
 	/** 发证时间 */
-	@Excel(name = "发证时间")
+	@Excel(name = "发证日期")
 	@ApiModelProperty("发证时间")
-	private Long startTime;
+	private String startTime;
 	/** 有效时间 */
-	@Excel(name = "有效时间")
+	@Excel(name = "有效日期")
 	@ApiModelProperty("有效时间")
-	private Long endTime;
+	private String endTime;
 	/** 发证机关 */
 	@Excel(name = "发证机关")
 	@ApiModelProperty("发证机关")
 	private String certificateAddress;
-	/** 预警状态 1:正常 2:已过期 */
-	@Excel(name = "预警状态 1:正常 2:已过期")
-	@ApiModelProperty("预警状态 1:正常 2:已过期")
-	private Integer warningStatus;
-	/** 证书预览 */
-	@Excel(name = "证书预览")
-	@ApiModelProperty("证书预览")
-	private String previewImg;
 	/** 员工证书备注 */
 	@Excel(name = "备注")
 	@ApiModelProperty("员工证书备注")
@@ -59,10 +47,6 @@ public class ExcelStaffCertificateVo {
 	@Excel(name = "*所属企业")
 	@ApiModelProperty("所属企业")
 	private String companyName;
-	/** 岗位状态 1:全职 2:离职 3:编外 */
-	@Excel(name = "岗位状态")
-	@ApiModelProperty("岗位状态")
-	private Long positionStatus;
 	/** 员工姓名 */
 	@Excel(name = "*姓名")
 	@ApiModelProperty("员工姓名")
@@ -71,11 +55,14 @@ public class ExcelStaffCertificateVo {
 	@Excel(name = "*身份证号")
 	@ApiModelProperty("身份证号")
 	private String idCard;
-	/** 添加时间 */
-	@Excel(name = "添加时间")
-	@ApiModelProperty("添加时间")
-	private String addTime;
-	/** 过期时间 */
-	private Long expirationTime;
+	/** 有效日期开始 */
+	@Excel(name = "有效日期开始")
+	@ApiModelProperty("有效日期开始")
+	private String effectiveGo;
+	/** 有效日期结束 */
+	@Excel(name = "有效日期结束")
+	@ApiModelProperty("有效日期结束")
+	private String effectiveEnd;
+
 
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffCertificateVo.java

@@ -51,6 +51,12 @@ public class StaffCertificateVo {
 	@Excel(name = "有效时间")
 	@ApiModelProperty("有效时间")
 	private Long endTime;
+	/** 有效日期开始 */
+	@Excel(name = "有效日期开始")
+	private Long effectiveGo;
+	/** 有效日期结束 */
+	@Excel(name = "有效日期结束")
+	private Long effectiveEnd;
 	/** 发证机关 */
 	@Excel(name = "发证机关")
 	@ApiModelProperty("发证机关")

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/staff/StaffCertificateMapper.xml

@@ -19,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="previewImg" column="preview_img"/>
         <result property="status" column="status"/>
         <result property="staffRemarks" column="staff_remarks"/>
+        <result property="effectiveGo" column="effective_go"/>
+        <result property="effectiveEnd" column="effective_end"/>
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>