Explorar o código

入职登记-新增导入

sangwenwei hai 6 meses
pai
achega
363ab7ca7c
Modificáronse 13 ficheiros con 519 adicións e 0 borrados
  1. 5 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/OfficeApiFallbackFactory.java
  2. 8 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IOfficeApi.java
  3. 149 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/controller/EnrollmentRegistrationController.java
  4. 21 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/domain/EnrollmentRegistration.java
  5. 4 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/EnrollmentRegistrationMapper.java
  6. 6 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/xml/EnrollmentRegistrationMapper.xml
  7. 124 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java
  8. 42 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/dto/UserTemplate.java
  9. 132 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/utils/IdCardUtil.java
  10. 5 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/OfficeApiImpl.java
  11. 5 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java
  12. 10 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml
  13. 8 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java

+ 5 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/OfficeApiFallbackFactory.java

@@ -57,6 +57,11 @@ public class OfficeApiFallbackFactory implements FallbackFactory <IOfficeApi> {
             public OfficeDTO getParentOfficeById(String id) {
                 return null;
             }
+
+            @Override
+            public List<OfficeDTO> getOfficeByCompany(String company) {
+                return null;
+            }
         };
     }
 }

+ 8 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IOfficeApi.java

@@ -66,4 +66,12 @@ public interface IOfficeApi {
      */
     @GetMapping(value = "/feign/sys/office/getParentOfficeById")
     OfficeDTO getParentOfficeById(@RequestParam(value = "id") String id);
+
+    /**
+     * 根据公司名称查询部门信息
+     * @param company
+     * @return
+     */
+    @GetMapping(value = "/feign/sys/office/getOfficeByCompany")
+    List<OfficeDTO> getOfficeByCompany(@RequestParam(value = "company")String company);
 }

+ 149 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/controller/EnrollmentRegistrationController.java

@@ -1,27 +1,43 @@
 package com.jeeplus.human.enrollment.enrollmentRegistration.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.jeeplus.common.TokenProvider;
+import com.jeeplus.common.excel.EasyExcelUtils;
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.human.depart.handover.domain.Handover;
 import com.jeeplus.human.depart.handover.service.HandoverService;
 import com.jeeplus.human.enrollment.enrollmentRegistration.domain.*;
 import com.jeeplus.human.enrollment.enrollmentRegistration.service.*;
+import com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.UserTemplate;
 import com.jeeplus.human.enrollment.enrollmentRegistration.utils.HunamFreemarkerUtil;
+import com.jeeplus.human.enrollment.enrollmentRegistration.utils.IdCardUtil;
 import com.jeeplus.human.practice.register.domain.Registration;
 import com.jeeplus.logging.annotation.ApiLog;
 import com.jeeplus.logging.constant.enums.LogTypeEnum;
+import com.jeeplus.pubmodules.holiday.utils.EasyPoiUtil;
+import com.jeeplus.sys.feign.IOfficeApi;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.utils.StringUtils;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
@@ -33,6 +49,7 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -47,6 +64,8 @@ import javax.validation.Valid;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import java.io.*;
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -61,6 +80,7 @@ import java.util.stream.Collectors;
  * @version 1.0
  * @date 2023-09-27 14:14
  */
+@Slf4j
 @RestController
 @Api("实习人员登记表信息")
 @RequestMapping(value = "/enrollmentRegistration")
@@ -516,4 +536,133 @@ public class EnrollmentRegistrationController {
         Integer idCardOnly = service.findMobilePhoneOnly(mobilePhone);
         return ResponseEntity.ok(idCardOnly);
     }
+
+
+    /**
+     * 下载导入用户数据模板
+     *
+     * @param response
+     * @return
+     */
+    @GetMapping("import/template")
+    @ApiOperation(value = "下载模板")
+    public void importFileTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {
+        String fileName = "用户数据导入模板.xlsx";
+        List <UserTemplate> list = Lists.newArrayList ( );
+        UserTemplate userTemplate = new UserTemplate();
+        userTemplate.setInDate("例:1970-01-01");
+        list.add(userTemplate);
+        EasyExcelUtils.newInstance ( ).exportExcel ( list, "用户数据", UserTemplate.class, fileName, null, response );
+    }
+
+
+
+    /**
+     * 导入用户数据
+     */
+    @PostMapping("import")
+    @ApiOperation(value = "导入用户excel")
+    public ResponseEntity importDetail(@RequestPart("file") MultipartFile file, HttpServletRequest request) {
+        List<EnrollmentRegistration> dtoArrayList = new ArrayList<>();
+        //获取sheet
+        dtoArrayList = EasyPoiUtil.importExcel(file, 0, 1, EnrollmentRegistration.class);
+        //去除excel中的空行
+        dtoArrayList = getExcelList(dtoArrayList);
+        ArrayList<EnrollmentRegistration> list = new ArrayList<>();
+        //根据用户身份证号获取用户年龄,性别,出生日期
+        for (EnrollmentRegistration staffUserInfoDTO : dtoArrayList) {
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getIdCard())){
+                //获取年龄
+                Integer age = IdCardUtil.getAge(staffUserInfoDTO.getIdCard());
+                staffUserInfoDTO.setAge(age.toString());
+                //获取性别
+                String sex = IdCardUtil.getSex(staffUserInfoDTO.getIdCard());
+                if (sex.equals("男")){
+                    staffUserInfoDTO.setSex("1");
+                }else {
+                    staffUserInfoDTO.setSex("2");
+                }
+                //获取出生日期
+                String birthday = IdCardUtil.getBirthday(staffUserInfoDTO.getIdCard());
+                staffUserInfoDTO.setBirthday(birthday);
+            }
+            staffUserInfoDTO.setOnJobStatus("2");
+            //根据所属公司获取部门
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getCompany())){
+                List<OfficeDTO> officeDTOList = SpringUtil.getBean(IOfficeApi.class).getOfficeByCompany(staffUserInfoDTO.getCompany());
+                String tenantId = officeDTOList.get(0).getTenantId();
+                if (CollectionUtil.isNotEmpty(officeDTOList)){
+                    for (OfficeDTO officeDTO : officeDTOList) {
+                        //获取部门
+                        if (StringUtils.isNotBlank(staffUserInfoDTO.getDepartment())){
+                            if (officeDTO.getName().equals(staffUserInfoDTO.getDepartment())){
+                                staffUserInfoDTO.setDepartment(officeDTO.getId());
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+
+
+            service.updateInfo(staffUserInfoDTO);
+        }
+        return ResponseEntity.ok("导入成功");
+
+
+    }
+
+
+    /**
+     * 去除excel中的空行
+     * @param list
+     * @return
+     */
+    public ArrayList<EnrollmentRegistration> getExcelList(List<EnrollmentRegistration> list){
+
+        ArrayList<EnrollmentRegistration> infoDTOS = new ArrayList<>();
+
+        list.stream().forEach(item->{
+            if(objectCheckIsNull(item)){
+                infoDTOS.add(item);
+            }
+        });
+
+        return infoDTOS;
+    }
+
+    public static boolean objectCheckIsNull(Object object) {
+        boolean flag = false; //定义返回结果,默认为true
+
+        if (Objects.isNull(object)) {
+            flag = false;
+        } else {
+            Class clazz = (Class) object.getClass(); // 得到类对象
+            Field fields[] = clazz.getDeclaredFields(); // 得到所有属性
+            for (Field field : fields) {
+                if("serialVersionUID".equals(field.getName()) || "BIZ_CODE".equalsIgnoreCase(field.getName())){
+                    continue;
+                }
+                field.setAccessible(true);
+                Object fieldValue = null;
+                try {
+                    fieldValue = field.get(object); //得到属性值
+                    Type fieldType = field.getGenericType();//得到属性类型
+                    String fieldName = field.getName(); // 得到属性名
+                    log.info("属性类型:" + fieldType + ",属性名:" + fieldName + ",属性值:" + fieldValue);
+                } catch (IllegalArgumentException e) {
+                    log.error(e.getMessage(), e);
+                } catch (IllegalAccessException e) {
+                    log.error(e.getMessage(), e);
+                }
+                if (fieldValue != null && fieldValue != "") {  //只要有一个属性值不为null 就返回false 表示对象不为null
+                    flag = true;
+                    break;
+                }
+            }
+        }
+
+        return flag;
+    }
+
 }

+ 21 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/domain/EnrollmentRegistration.java

@@ -1,11 +1,16 @@
 package com.jeeplus.human.enrollment.enrollmentRegistration.domain;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,15 +22,19 @@ import java.util.List;
 @Data
 @TableName("human_resources_enrollment_registration")
 public class EnrollmentRegistration extends BaseEntity {
+    @Excel(name = "姓名",width = 25)
     private String name;                //姓名
     private String sex;                 //性别
     private String age;                 //年龄
     private String birthday;            //出生日期
     private String politicalOutlook;    //政治面貌
+    @Excel(name = "籍贯",width = 25)
     private String nativePlace;         //籍贯
     private String nation;              //民族
     private String maritalStatus;       //婚姻状况
+    @Excel(name = "联系电话",width = 25)
     private String mobilePhone;         //联系电话
+    @Excel(name = "身份证号码",width = 25)
     private String idCard;              //身份证号码
     private String homeAddress;         //家庭住址
     private String permanentAddress;    //常住地址
@@ -38,6 +47,7 @@ public class EnrollmentRegistration extends BaseEntity {
     private String graduatedOrNot;      //是否毕业
     private String englishLevel;        //英语等级
     private String ncre;                //计算机等级
+    @Excel(name = "所属部门",width = 25)
     private String department;          //所属部门
     private String entryDate;           //进所日期
     private String contractStartDate;   //合同开始日期
@@ -92,4 +102,15 @@ public class EnrollmentRegistration extends BaseEntity {
     private List<String> postIdList;
     @TableField(exist = false)
     private String companyId; //公司id
+    @TableField(exist = false)
+    @Excel(name = "角色",width = 25)
+    private String role;
+    @TableField(exist = false)
+    @Excel(name = "所属公司",width = 25)
+    private String company;     //所属公司
+    @TableField(exist = false)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @Excel(name = "进所日期",exportFormat = "yyyy-MM-dd",importFormat = "yyyy-MM-dd")
+    private Date inDate;  //进所日期
 }

+ 4 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/EnrollmentRegistrationMapper.java

@@ -69,4 +69,8 @@ public interface EnrollmentRegistrationMapper extends BaseMapper<EnrollmentRegis
      * @param id
      */
     void delByUserId(@Param("id")String id);
+    /*8
+    根据手机号查询信息
+     */
+    EnrollmentRegistration getByMobile(@Param("mobilePhone") String mobilePhone);
 }

+ 6 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/xml/EnrollmentRegistrationMapper.xml

@@ -134,4 +134,10 @@
         UPDATE human_resources_enrollment_registration SET del_flag = '1'
 		WHERE user_id = #{id}
     </delete>
+    <select id="getByMobile" resultType="com.jeeplus.human.enrollment.enrollmentRegistration.domain.EnrollmentRegistration">
+        SELECT
+        <include refid="Base_Column_List"></include>
+        FROM `human_resources_enrollment_registration`  a
+        WHERE a.mobile_phone = #{mobilePhone} and a.del_flag = '0'
+    </select>
 </mapper>

+ 124 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java

@@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -720,4 +721,127 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
     public void delByUserId(String id) {
         mapper.delByUserId(id);
     }
+
+    /**
+     * 添加导入的用户信息
+     * @param staffUserInfoDTO
+     */
+    public void updateInfo(EnrollmentRegistration staffUserInfoDTO) {
+        if (ObjectUtil.isNotEmpty(staffUserInfoDTO)){
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getMobilePhone())){
+                //根据手机号查询信息
+                EnrollmentRegistration registration = mapper.getByMobile(staffUserInfoDTO.getMobilePhone());
+                if (ObjectUtil.isNotEmpty(registration)){
+                    if (registration.getName().equals(staffUserInfoDTO.getName())){
+                        registration.setSex(staffUserInfoDTO.getSex());//性别
+                        registration.setBirthday(staffUserInfoDTO.getBirthday());//生日
+                        registration.setAge(staffUserInfoDTO.getAge());//年龄
+                        registration.setNativePlace(staffUserInfoDTO.getNativePlace());//籍贯
+                        registration.setOnJobStatus(staffUserInfoDTO.getOnJobStatus());//正式
+                        registration.setDepartment(staffUserInfoDTO.getDepartment());//所属部门
+                        registration.setMobilePhone(staffUserInfoDTO.getMobilePhone());//联系电话
+                        if (ObjectUtil.isNotEmpty(staffUserInfoDTO.getInDate())){
+                            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                            String format = simpleDateFormat.format(staffUserInfoDTO.getInDate());
+                            registration.setEntryDate(format);//入职时间
+                        }
+                        registration.setIdCard(staffUserInfoDTO.getIdCard());//身份证
+                        mapper.updateById(registration);
+                        if (com.jeeplus.utils.StringUtils.isNotBlank(staffUserInfoDTO.getRole()) && staffUserInfoDTO.getRole().contains(",")){
+                            if (StringUtils.isNotBlank(registration.getUserId())){
+                                UserDTO dto = SpringUtil.getBean(IUserApi.class).getById(registration.getUserId());
+                                List <RoleDTO> roleIdList = new ArrayList<>();
+                                String[] split = staffUserInfoDTO.getRole().split(",");
+                                for (String s : split) {
+                                    HashMap<String, String> hashMap = new HashMap<>();
+                                    hashMap.put("name", s);
+                                    hashMap.put("tenantId", dto.getTenantDTO().getId());
+                                    List<RoleDTO> roleDTOS = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(hashMap);
+                                    roleIdList.addAll(roleDTOS);
+                                }
+                                dto.setRoleDTOList(roleIdList);
+                                //根据实习部门获取部门信息
+                                OfficeDTO officeDTO = SpringUtil.getBean(IOfficeApi.class).getOfficeById(staffUserInfoDTO.getDepartment());
+                                dto.setOfficeDTO(officeDTO);
+                                OfficeDTO officeDTO1 = new OfficeDTO();
+                                officeDTO1.setId(officeDTO.getParent().getId());
+                                dto.setCompanyDTO(officeDTO1);
+                                TenantDTO tenantDTO = new TenantDTO();
+                                tenantDTO.setId(officeDTO.getTenantId());
+                                dto.setTenantDTO(tenantDTO);
+                                SpringUtil.getBean ( IUserApi.class ).saveOrUpdate(dto);
+                            }
+                        }
+                    }
+                }else {
+                    //入职id
+                    String id = SnowFlake.getId();
+                    EnrollmentRegistration enrollmentRegistration = new EnrollmentRegistration();
+                    enrollmentRegistration.setId(id);
+                    enrollmentRegistration.setCreateById("1");
+                    enrollmentRegistration.setCreateTime(new Date());
+                    enrollmentRegistration.setUpdateById("1");
+                    enrollmentRegistration.setUpdateTime(new Date());
+                    enrollmentRegistration.setName(staffUserInfoDTO.getName());
+                    enrollmentRegistration.setSex(staffUserInfoDTO.getSex());//性别
+                    enrollmentRegistration.setBirthday(staffUserInfoDTO.getBirthday());//生日
+                    enrollmentRegistration.setAge(staffUserInfoDTO.getAge());//年龄
+                    enrollmentRegistration.setNativePlace(staffUserInfoDTO.getNativePlace());//籍贯
+                    enrollmentRegistration.setOnJobStatus(staffUserInfoDTO.getOnJobStatus());//正式
+                    enrollmentRegistration.setDepartment(staffUserInfoDTO.getDepartment());//所属部门
+                    enrollmentRegistration.setMobilePhone(staffUserInfoDTO.getMobilePhone());//联系电话
+                    if (ObjectUtil.isNotEmpty(staffUserInfoDTO.getInDate())){
+                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        String format = simpleDateFormat.format(staffUserInfoDTO.getInDate());
+                        enrollmentRegistration.setEntryDate(format);//入职时间
+                    }
+                    enrollmentRegistration.setIdCard(staffUserInfoDTO.getIdCard());//身份证
+                    enrollmentRegistration.setType("5");//状态
+                    //根据手机号查询用户信息
+                    UserDTO dto = SpringUtil.getBean(IUserApi.class).getByMobile(staffUserInfoDTO.getMobilePhone());
+
+                    //新增用户信息
+                    UserDTO dto1 = new UserDTO();
+                    if (ObjectUtil.isNotEmpty(dto)){
+                        enrollmentRegistration.setUserId(dto.getId());
+                        BeanUtils.copyProperties(dto,dto1);
+                    }else {
+                        //生成一个用户id
+                        String userId = SnowFlake.getId();
+                        enrollmentRegistration.setUserId(userId);
+                        dto1.setId(userId);
+                        dto1.setName(staffUserInfoDTO.getName());
+                        dto1.setLoginName(staffUserInfoDTO.getName());
+                        dto1.setMobile(staffUserInfoDTO.getMobilePhone());
+                        dto1.setNo(staffUserInfoDTO.getMobilePhone());
+                        dto1.setPhoto("");
+                        //根据实习部门获取部门信息
+                        OfficeDTO officeDTO = SpringUtil.getBean(IOfficeApi.class).getOfficeById(staffUserInfoDTO.getDepartment());
+                        dto1.setOfficeDTO(officeDTO);
+                        OfficeDTO officeDTO1 = new OfficeDTO();
+                        officeDTO1.setId(officeDTO.getParent().getId());
+                        dto1.setCompanyDTO(officeDTO1);
+                        TenantDTO tenantDTO = new TenantDTO();
+                        tenantDTO.setId(officeDTO.getTenantId());
+                        dto1.setTenantDTO(tenantDTO);
+                    }
+                    if (com.jeeplus.utils.StringUtils.isNotBlank(staffUserInfoDTO.getRole()) && staffUserInfoDTO.getRole().contains(",")){
+                        List <RoleDTO> roleIdList = new ArrayList<>();
+                        String[] split = staffUserInfoDTO.getRole().split(",");
+                        for (String s : split) {
+                            HashMap<String, String> hashMap = new HashMap<>();
+                            hashMap.put("name", s);
+                            hashMap.put("tenantId", dto.getTenantDTO().getId());
+                            List<RoleDTO> roleDTOS = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(hashMap);
+                            roleIdList.addAll(roleDTOS);
+                        }
+                        dto1.setRoleDTOList(roleIdList);
+                    }
+                    SpringUtil.getBean ( IUserApi.class ).saveOrUpdate(dto1);
+                    mapper.insert(enrollmentRegistration);
+                }
+            }
+        }
+
+    }
 }

+ 42 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/dto/UserTemplate.java

@@ -0,0 +1,42 @@
+package com.jeeplus.human.enrollment.enrollmentRegistration.service.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class UserTemplate {
+
+    @ExcelProperty("姓名")
+    private String name;                //姓名
+
+    @ExcelProperty("籍贯")
+    private String nativePlace;         //籍贯
+
+    @ExcelProperty("身份证号码")
+    private String idCard;              //身份证号码
+
+    @ExcelProperty("联系电话")
+    private String mobilePhone;         //联系电话
+
+
+    /**
+     * 员工入职日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @ExcelProperty(value = "进所日期",format = "yyyy-MM-dd")
+    private String inDate;
+
+    @ExcelProperty(value = "所属部门")
+    private String department;          //所属部门
+    @ExcelProperty(value = "所属公司")
+    private String company;     //所属公司
+
+    @ExcelProperty("角色")
+    private String role;          //角色
+
+}

+ 132 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/utils/IdCardUtil.java

@@ -0,0 +1,132 @@
+package com.jeeplus.human.enrollment.enrollmentRegistration.utils;
+
+import org.apache.commons.lang.StringUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @Description:身份证号的util
+ * @Author:
+ * @Date: Created in 11:26 2019-03-27
+ * @Modified By:
+ */
+public class IdCardUtil {
+    /**
+     * 15位身份证号
+     */
+    private static final Integer FIFTEEN_ID_CARD=15;
+    /**
+     * 18位身份证号
+     */
+    private static final Integer EIGHTEEN_ID_CARD=18;
+    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+
+    /**
+     * 根据身份证号获取性别
+     * @param IDCard
+     * @return
+     */
+    public static String getSex(String IDCard){
+        String sex ="";
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                if (Integer.parseInt(IDCard.substring(14, 15)) % 2 == 0) {
+                    sex = "女";
+                } else {
+                    sex = "男";
+                }
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 判断性别
+                if (Integer.parseInt(IDCard.substring(16).substring(0, 1)) % 2 == 0) {
+                    sex = "女";
+                } else {
+                    sex = "男";
+                }
+            }
+        }
+        return sex;
+    }
+
+    /**
+     * 根据身份证号获取年龄
+     * @param IDCard
+     * @return
+     */
+    public static Integer getAge(String IDCard){
+        Integer age = 0;
+        Date date = new Date();
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                // 身份证上的年份(15位身份证为1980年前的)
+                String uyear = "19" + IDCard.substring(6, 8);
+                // 身份证上的月份
+                String uyue = IDCard.substring(8, 10);
+                // 当前年份
+                String fyear = format.format(date).substring(0, 4);
+                // 当前月份
+                String fyue = format.format(date).substring(5, 7);
+                if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;
+                    // 当前用户还没过生
+                } else {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear);
+                }
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 身份证上的年份
+                String year = IDCard.substring(6).substring(0, 4);
+                // 身份证上的月份
+                String yue = IDCard.substring(10).substring(0, 2);
+                // 当前年份
+                String fyear = format.format(date).substring(0, 4);
+                // 当前月份
+                String fyue = format.format(date).substring(5, 7);
+                // 当前月份大于用户出身的月份表示已过生日
+                if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;
+                    // 当前用户还没过生日
+                } else {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(year);
+                }
+            }
+        }
+        return age;
+    }
+
+    /**
+     * 获取出生日期  yyyy年MM月dd日
+     * @param IDCard
+     * @return
+     */
+    public static String getBirthday(String IDCard){
+        String birthday="";
+        String year="";
+        String month="";
+        String day="";
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                // 身份证上的年份(15位身份证为1980年前的)
+                year = "19" + IDCard.substring(6, 8);
+                //身份证上的月份
+                month = IDCard.substring(8, 10);
+                //身份证上的日期
+                day= IDCard.substring(10, 12);
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 身份证上的年份
+                year = IDCard.substring(6).substring(0, 4);
+                // 身份证上的月份
+                month = IDCard.substring(10).substring(0, 2);
+                //身份证上的日期
+                day=IDCard.substring(12).substring(0,2);
+            }
+            birthday=year+"-"+month+"-"+day;
+        }
+        return birthday;
+    }
+}

+ 5 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/OfficeApiImpl.java

@@ -50,4 +50,9 @@ public class OfficeApiImpl implements IOfficeApi {
     public OfficeDTO getParentOfficeById(String id) {
         return officeService.getParentOfficeById(id);
     }
+
+    @Override
+    public List<OfficeDTO> getOfficeByCompany(String company) {
+        return officeService.getOfficeByCompany(company);
+    }
 }

+ 5 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java

@@ -127,4 +127,9 @@ public interface OfficeMapper extends TreeMapper <Office> {
      */
     @InterceptorIgnore(tenantLine = "true")
     OfficeDTO getParentOfficeById(String id);
+    /*8
+    根据公司查询部门信息
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    List<OfficeDTO> getOfficeByCompany(@Param("company")String company);
 }

+ 10 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -379,4 +379,14 @@
             and a.del_flag = 0
         </where>
     </select>
+
+    <select id="getOfficeByCompany" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
+        select
+        <include refid="officeColumns"/>
+        from sys_office a
+        <where>
+            a.parent_id = (select id from sys_office where name = #{company})
+            and a.del_flag = 0
+        </where>
+    </select>
 </mapper>

+ 8 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -657,4 +657,12 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
         }
         return offices;
     }
+
+    /*
+    根据公司名称查询部门信息
+     */
+    public List<OfficeDTO> getOfficeByCompany(String company) {
+        List<OfficeDTO> officeDTOList = officeMapper.getOfficeByCompany(company);
+        return officeDTOList;
+    }
 }