Procházet zdrojové kódy

花名册-教育经历、工作经历、家庭成员、员工证书、头像

lizhenhao před 2 roky
rodič
revize
9f758905db
22 změnil soubory, kde provedl 586 přidání a 32 odebrání
  1. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBase.java
  2. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterEducate.java
  3. 125 9
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml
  4. 19 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterCertificateMapper.xml
  5. 16 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterEducateMapper.xml
  6. 12 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterFamilyMapper.xml
  7. 9 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterFilesMapper.xml
  8. 13 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterWorkMapper.xml
  9. 143 13
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java
  10. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterCertificateService.java
  11. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterEducateService.java
  12. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterFamilyService.java
  13. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterFilesService.java
  14. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterWorkService.java
  15. 35 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBaseDTO.java
  16. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterEducateDTO.java
  17. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterFamilyDTO.java
  18. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterCertificateWrapper.java
  19. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterEducateWrapper.java
  20. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterFamilyWrapper.java
  21. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterFilesWrapper.java
  22. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterWorkWrapper.java

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBase.java

@@ -218,5 +218,10 @@ public class RosterBase extends BaseEntity {
      */
     private String email;
 
+    /**
+     * 头像
+     */
+    private String headshot;
+
     private static final long serialVersionUID = 1L;
 }

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterEducate.java

@@ -62,5 +62,10 @@ public class RosterEducate extends BaseEntity {
      */
     private String educationCertSecond;
 
+    /**
+     * 学历
+     */
+    private String degree;
+
     private static final long serialVersionUID = 1L;
 }

+ 125 - 9
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml

@@ -47,9 +47,16 @@
     <result column="qq" jdbcType="VARCHAR" property="qq" />
     <result column="wechat" jdbcType="VARCHAR" property="wechat" />
     <result column="email" jdbcType="VARCHAR" property="email" />
+    <result column="headshot" jdbcType="VARCHAR" property="headshot" />
     <association property="rosterContractDTO" javaType="com.jeeplus.test.roster.service.dto.RosterContractDTO" column="id" select="getContractDTO"></association>
     <collection property="rosterBankCardsDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterBankCardsDTO" column="id" select="getBankCardsList"></collection>
+    <collection property="rosterEducateDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterEducateDTO" column="id" select="getEducateList"></collection>
+    <collection property="rosterWorkDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterWorkDTO" column="id" select="getWorkList"></collection>
+    <collection property="rosterFamilyDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterFamilyDTO" column="id" select="getFamilyList"></collection>
+    <collection property="rosterCertificateDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterCertificateDTO" column="id" select="getCertificateList"></collection>
+    <collection property="rosterFilesDTOList" ofType="com.jeeplus.test.roster.service.dto.RosterFilesDTO" column="id" select="getFilesList"></collection>
   </resultMap>
+
   <sql id="Base_Column_List">
     rb.id,
     rb.create_by,
@@ -95,7 +102,8 @@
     rb.child_name,
     rb.qq,
     rb.wechat,
-    rb.email
+    rb.email,
+    rb.headshot
   </sql>
   <sql id="Contract_Column_List">
     rc.id,
@@ -129,13 +137,85 @@
         rbc.payroll_card_pic,
         rbc.is_default
   </sql>
-
-  <select id="findList" resultMap="BaseResultMap">
-    select
-    <include refid="Base_Column_List"></include>
-    from roster_base rb
-    ${ew.customSqlSegment}
-  </select>
+  <sql id="Educate_Column_List">
+    re.id,
+    re.create_by,
+    re.create_date,
+    re.update_by,
+    re.update_date,
+    re.remarks,
+    re.del_flag,
+    re.base_id,
+    re.college_name,
+    re.profession,
+    re.entry_date,
+    re.graduation_date,
+    re.have_degree,
+    re.education_cert_first,
+    re.education_cert_second,
+    re.degree
+  </sql>
+  <sql id="Certificate_Column_List">
+    rce.id,
+    rce.create_by,
+    rce.create_date,
+    rce.update_by,
+    rce.update_date,
+    rce.remarks,
+    rce.del_flag,
+    rce.base_id,
+    rce.cert_name,
+    rce.cert_type,
+    rce.cert_no,
+    rce.issued_institution,
+    rce.issued_date,
+    rce.record_date,
+    rce.remind_date,
+    rce.expire_date,
+    rce.profession,
+    rce.`level`,
+    rce.description
+  </sql>
+  <sql id="Family_Column_List">
+    rfa.id,
+    rfa.create_by,
+    rfa.create_date,
+    rfa.update_by,
+    rfa.update_date,
+    rfa.remarks,
+    rfa.del_flag,
+    rfa.base_id,
+    rfa.`name`,
+    rfa.relationship,
+    rfa.birth_date,
+    rfa.birth_certificate
+  </sql>
+  <sql id="Files_Column_List">
+    rf.id,
+    rf.create_by,
+    rf.create_date,
+    rf.update_by,
+    rf.update_date,
+    rf.remarks,
+    rf.del_flag,
+    rf.base_id,
+    rf.url
+  </sql>
+  <sql id="Work_Column_List">
+    rw.id,
+    rw.create_by,
+    rw.create_date,
+    rw.update_by,
+    rw.update_date,
+    rw.remarks,
+    rw.del_flag,
+    rw.base_id,
+    rw.company_name,
+    rw.posts,
+    rw.entry_date,
+    rw.separation_date,
+    rw.post_description
+  </sql>
 
   <select id="getContractDTO" resultType="com.jeeplus.test.roster.service.dto.RosterContractDTO">
     select
@@ -143,13 +223,49 @@
     from roster_contract rc
     where rc.del_flag = '0' and rc.base_id = #{id}
   </select>
-
   <select id="getBankCardsList" resultType="com.jeeplus.test.roster.service.dto.RosterBankCardsDTO">
     select
     <include refid="BankCards_Column_List"></include>
     from roster_bank_cards rbc
     where rbc.del_flag = '0' and rbc.base_id = #{id}
   </select>
+  <select id="getEducateList" resultType="com.jeeplus.test.roster.service.dto.RosterEducateDTO">
+    select
+    <include refid="Educate_Column_List"></include>
+    from roster_educate re
+    where re.del_flag = '0' and re.base_id = #{id}
+  </select>
+  <select id="getWorkList" resultType="com.jeeplus.test.roster.service.dto.RosterWorkDTO">
+    select
+    <include refid="Work_Column_List"></include>
+    from roster_work rw
+    where rw.del_flag = '0' and rw.base_id = #{id}
+  </select>
+  <select id="getFamilyList" resultType="com.jeeplus.test.roster.service.dto.RosterFamilyDTO">
+    select
+    <include refid="Family_Column_List"></include>
+    from roster_family rfa
+    where rfa.del_flag = '0' and rfa.base_id = #{id}
+  </select>
+  <select id="getCertificateList" resultType="com.jeeplus.test.roster.service.dto.RosterCertificateDTO">
+    select
+    <include refid="Certificate_Column_List"></include>
+    from roster_certificate rce
+    where rce.del_flag = '0' and rce.base_id = #{id}
+  </select>
+  <select id="getFilesList" resultType="com.jeeplus.test.roster.service.dto.RosterFilesDTO">
+    select
+    <include refid="Files_Column_List"></include>
+    from roster_files rf
+    where rf.del_flag = '0' and rf.base_id = #{id}
+  </select>
+
+  <select id="findList" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List"></include>
+    from roster_base rb
+    ${ew.customSqlSegment}
+  </select>
 
   <select id="queryById" resultMap="BaseResultMap">
     select

+ 19 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterCertificateMapper.xml

@@ -23,9 +23,25 @@
     <result column="description" jdbcType="VARCHAR" property="description" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, del_flag, base_id, cert_name, 
-    cert_type, cert_no, issued_institution, issued_date, record_date, remind_date, expire_date, 
-    profession, `level`, description
+    rce.id,
+    rce.create_by,
+    rce.create_date,
+    rce.update_by,
+    rce.update_date,
+    rce.remarks,
+    rce.del_flag,
+    rce.base_id,
+    rce.cert_name,
+    rce.cert_type,
+    rce.cert_no,
+    rce.issued_institution,
+    rce.issued_date,
+    rce.record_date,
+    rce.remind_date,
+    rce.expire_date,
+    rce.profession,
+    rce.`level`,
+    rce.description
   </sql>
 
 </mapper>

+ 16 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterEducateMapper.xml

@@ -19,7 +19,21 @@
     <result column="education_cert_second" jdbcType="VARCHAR" property="educationCertSecond" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, del_flag, base_id, college_name, 
-    profession, entry_date, graduation_date, have_degree, education_cert_first, education_cert_second
+    re.id,
+    re.create_by,
+    re.create_date,
+    re.update_by,
+    re.update_date,
+    re.remarks,
+    re.del_flag,
+    re.base_id,
+    re.college_name,
+    re.profession,
+    re.entry_date,
+    re.graduation_date,
+    re.have_degree,
+    re.education_cert_first,
+    re.education_cert_second,
+    re.degree
   </sql>
 </mapper>

+ 12 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterFamilyMapper.xml

@@ -16,7 +16,17 @@
     <result column="birth_certificate" jdbcType="VARCHAR" property="birthCertificate" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, del_flag, base_id, `name`, 
-    relationship, birth_date, birth_certificate
+    rfa.id,
+    rfa.create_by,
+    rfa.create_date,
+    rfa.update_by,
+    rfa.update_date,
+    rfa.remarks,
+    rfa.del_flag,
+    rfa.base_id,
+    rfa.`name`,
+    rfa.relationship,
+    rfa.birth_date,
+    rfa.birth_certificate
   </sql>
 </mapper>

+ 9 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterFilesMapper.xml

@@ -13,6 +13,14 @@
     <result column="url" jdbcType="VARCHAR" property="url" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, del_flag, base_id, url
+    rf.id,
+    rf.create_by,
+    rf.create_date,
+    rf.update_by,
+    rf.update_date,
+    rf.remarks,
+    rf.del_flag,
+    rf.base_id,
+    rf.url
   </sql>
 </mapper>

+ 13 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterWorkMapper.xml

@@ -17,7 +17,18 @@
     <result column="post_description" jdbcType="VARCHAR" property="postDescription" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, del_flag, base_id, company_name, 
-    posts, entry_date, separation_date, post_description
+    rw.id,
+    rw.create_by,
+    rw.create_date,
+    rw.update_by,
+    rw.update_date,
+    rw.remarks,
+    rw.del_flag,
+    rw.base_id,
+    rw.company_name,
+    rw.posts,
+    rw.entry_date,
+    rw.separation_date,
+    rw.post_description
   </sql>
 </mapper>

+ 143 - 13
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java

@@ -10,15 +10,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jeeplus.test.jobPosion.utils.BeanUtils;
 import com.jeeplus.test.oss.service.OssService;
 import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
-import com.jeeplus.test.roster.domain.RosterBankCards;
-import com.jeeplus.test.roster.domain.RosterBase;
-import com.jeeplus.test.roster.domain.RosterContract;
+import com.jeeplus.test.roster.domain.*;
 import com.jeeplus.test.roster.mapper.RosterBaseMapper;
-import com.jeeplus.test.roster.service.dto.RosterBankCardsDTO;
-import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
-import com.jeeplus.test.roster.service.mapstruct.RosterBankCardsWrapper;
-import com.jeeplus.test.roster.service.mapstruct.RosterBaseWrapper;
-import com.jeeplus.test.roster.service.mapstruct.RosterContractWrapper;
+import com.jeeplus.test.roster.service.dto.*;
+import com.jeeplus.test.roster.service.mapstruct.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
@@ -41,6 +36,21 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
     private RosterBankCardsService rosterBankCardsService;
 
     @Autowired
+    private RosterEducateService rosterEducateService;
+
+    @Autowired
+    private RosterFamilyService rosterFamilyService;
+
+    @Autowired
+    private RosterWorkService rosterWorkService;
+
+    @Autowired
+    private RosterFilesService rosterFilesService;
+
+    @Autowired
+    private RosterCertificateService rosterCertificateService;
+
+    @Autowired
     private OssService ossService;
 
     public IPage<RosterBaseDTO> findList(Page<RosterBaseDTO> page, QueryWrapper<RosterBase> queryWrapper){
@@ -55,6 +65,10 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
                 String front = ossService.getFileTemporaryLookUrl(rosterBaseDTO.getCertificatesFront());
                 rosterBaseDTO.setCertificatesFrontLsUrl(front);
             }
+            if(StrUtil.isNotEmpty(rosterBaseDTO.getHeadshot())){
+                String headshot = ossService.getFileTemporaryLookUrl(rosterBaseDTO.getHeadshot());
+                rosterBaseDTO.setHeadshotLsUrl(headshot);
+            }
             if(StrUtil.isNotEmpty(rosterBaseDTO.getCertificatesBack())){
                 String back = ossService.getFileTemporaryLookUrl(rosterBaseDTO.getCertificatesBack());
                 rosterBaseDTO.setCertificatesBackLsUrl(back);
@@ -67,30 +81,76 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
                     }
                 });
             }
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterEducateDTOList())){
+                rosterBaseDTO.getRosterEducateDTOList().stream().forEach(item->{
+                    if(StrUtil.isNotEmpty(item.getEducationCertFirst())){
+                        String certFirst = ossService.getFileTemporaryLookUrl(item.getEducationCertFirst());
+                        item.setEducationCertFirstLsUrl(certFirst);
+                    }
+                    if(StrUtil.isNotEmpty(item.getEducationCertFirst())){
+                        String certSecond = ossService.getFileTemporaryLookUrl(item.getEducationCertSecond());
+                        item.setEducationCertSecondLsUrl(certSecond);
+                    }
+                });
+            }
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterFamilyDTOList())){
+                rosterBaseDTO.getRosterFamilyDTOList().stream().forEach(item->{
+                    if(StrUtil.isNotEmpty(item.getBirthCertificate())){
+                        String birth = ossService.getFileTemporaryLookUrl(item.getBirthCertificate());
+                        item.setBirthCertificateLsUrl(birth);
+                    }
+                });
+            }
         }
         return rosterBaseDTO;
     }
 
     public ResponseEntity saveRoster(RosterBaseDTO rosterBaseDTO){
-        RosterBase rosterBase = RosterBaseWrapper.INSTANCE.toEntity(rosterBaseDTO);
 
         if(ObjectUtil.isNotEmpty(rosterBaseDTO)){
             if(StrUtil.isNotEmpty(rosterBaseDTO.getId())){
-
+                if(StrUtil.isNotEmpty(rosterBaseDTO.getIdCard())){
+                    List<RosterBase> rosterBaseList = this.list(new QueryWrapper<RosterBase>().eq("id_card", rosterBaseDTO.getIdCard()).ne("id",rosterBaseDTO.getId()));
+                    if(CollectionUtil.isNotEmpty(rosterBaseList)){
+                        return ResponseEntity.badRequest().body("基础信息-身份证号 已存在,保存失败");
+                    }
+                }
+                if(StrUtil.isNotEmpty(rosterBaseDTO.getMobile())){
+                    List<RosterBase> rosterBaseList = this.list(new QueryWrapper<RosterBase>().eq("mobile", rosterBaseDTO.getMobile()).ne("id",rosterBaseDTO.getId()));
+                    if(CollectionUtil.isNotEmpty(rosterBaseList)){
+                        return ResponseEntity.badRequest().body("基础信息-手机号码 已存在,保存失败");
+                    }
+                }
+            }else{
+                if(StrUtil.isNotEmpty(rosterBaseDTO.getIdCard())){
+                    List<RosterBase> rosterBaseList = this.list(new QueryWrapper<RosterBase>().eq("id_card", rosterBaseDTO.getIdCard()));
+                    if(CollectionUtil.isNotEmpty(rosterBaseList)){
+                        return ResponseEntity.badRequest().body("基础信息-身份证号 已存在,保存失败");
+                    }
+                }
+                if(StrUtil.isNotEmpty(rosterBaseDTO.getMobile())){
+                    List<RosterBase> rosterBaseList = this.list(new QueryWrapper<RosterBase>().eq("mobile", rosterBaseDTO.getMobile()));
+                    if(CollectionUtil.isNotEmpty(rosterBaseList)){
+                        return ResponseEntity.badRequest().body("基础信息-手机号码 已存在,保存失败");
+                    }
+                }
             }
+
         }
+
+        RosterBase rosterBase = RosterBaseWrapper.INSTANCE.toEntity(rosterBaseDTO);
+
         this.saveOrUpdate(rosterBase);
 
         if(ObjectUtil.isNotEmpty(rosterBaseDTO)){
+            //保存合同信息
             if(ObjectUtil.isNotEmpty(rosterBaseDTO.getRosterContractDTO())){
                 RosterContract rosterContract = RosterContractWrapper.INSTANCE.toEntity(rosterBaseDTO.getRosterContractDTO());
                 rosterContract.setBaseId(rosterBase.getId());
                 rosterContractService.remove(new QueryWrapper<RosterContract>().eq("base_id",rosterBase.getId()));
                 rosterContractService.saveOrUpdate(rosterContract);
             }
-        }
-
-        if(ObjectUtil.isNotEmpty(rosterBaseDTO)){
+            //保存银行卡信息
             if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterBankCardsDTOList())){
                 List<String> collect = rosterBaseDTO.getRosterBankCardsDTOList().stream().map(RosterBankCardsDTO::getId).collect(Collectors.toList());
                 rosterBankCardsService.remove(new QueryWrapper<RosterBankCards>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
@@ -104,6 +164,76 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
             }else{
                 rosterBankCardsService.remove(new QueryWrapper<RosterBankCards>().eq("base_id",rosterBase.getId()));
             }
+            //保存教育经历
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterEducateDTOList())){
+                List<String> collect = rosterBaseDTO.getRosterEducateDTOList().stream().map(RosterEducateDTO::getId).collect(Collectors.toList());
+                rosterEducateService.remove(new QueryWrapper<RosterEducate>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
+                rosterBaseDTO.getRosterEducateDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterEducate rosterEducate = RosterEducateWrapper.INSTANCE.toEntity(item);
+                        rosterEducate.setBaseId(rosterBase.getId());
+                        rosterEducateService.saveOrUpdate(rosterEducate);
+                    }
+                });
+            }else{
+                rosterEducateService.remove(new QueryWrapper<RosterEducate>().eq("base_id",rosterBase.getId()));
+            }
+            //保存工作经历
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterWorkDTOList())){
+                List<String> collect = rosterBaseDTO.getRosterWorkDTOList().stream().map(RosterWorkDTO::getId).collect(Collectors.toList());
+                rosterWorkService.remove(new QueryWrapper<RosterWork>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
+                rosterBaseDTO.getRosterWorkDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterWork rosterWork = RosterWorkWrapper.INSTANCE.toEntity(item);
+                        rosterWork.setBaseId(rosterBase.getId());
+                        rosterWorkService.saveOrUpdate(rosterWork);
+                    }
+                });
+            }else{
+                rosterWorkService.remove(new QueryWrapper<RosterWork>().eq("base_id",rosterBase.getId()));
+            }
+            //保存家庭成员
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterFamilyDTOList())){
+                List<String> collect = rosterBaseDTO.getRosterFamilyDTOList().stream().map(RosterFamilyDTO::getId).collect(Collectors.toList());
+                rosterFamilyService.remove(new QueryWrapper<RosterFamily>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
+                rosterBaseDTO.getRosterFamilyDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterFamily rosterFamily = RosterFamilyWrapper.INSTANCE.toEntity(item);
+                        rosterFamily.setBaseId(rosterBase.getId());
+                        rosterFamilyService.saveOrUpdate(rosterFamily);
+                    }
+                });
+            }else{
+                rosterFamilyService.remove(new QueryWrapper<RosterFamily>().eq("base_id",rosterBase.getId()));
+            }
+            //保存员工证书
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterCertificateDTOList())){
+                List<String> collect = rosterBaseDTO.getRosterCertificateDTOList().stream().map(RosterCertificateDTO::getId).collect(Collectors.toList());
+                rosterCertificateService.remove(new QueryWrapper<RosterCertificate>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
+                rosterBaseDTO.getRosterCertificateDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterCertificate rosterCertificate = RosterCertificateWrapper.INSTANCE.toEntity(item);
+                        rosterCertificate.setBaseId(rosterBase.getId());
+                        rosterCertificateService.saveOrUpdate(rosterCertificate);
+                    }
+                });
+            }else{
+                rosterCertificateService.remove(new QueryWrapper<RosterCertificate>().eq("base_id",rosterBase.getId()));
+            }
+            //保存附件
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterFilesDTOList())){
+                List<String> collect = rosterBaseDTO.getRosterFilesDTOList().stream().map(RosterFilesDTO::getId).collect(Collectors.toList());
+                rosterFilesService.remove(new QueryWrapper<RosterFiles>().eq("base_id",rosterBase.getId()).notIn(CollectionUtil.isNotEmpty(collect),"id",collect));
+                rosterBaseDTO.getRosterFilesDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterFiles rosterFiles = RosterFilesWrapper.INSTANCE.toEntity(item);
+                        rosterFiles.setBaseId(rosterBase.getId());
+                        rosterFilesService.saveOrUpdate(rosterFiles);
+                    }
+                });
+            }else{
+                rosterFilesService.remove(new QueryWrapper<RosterFiles>().eq("base_id",rosterBase.getId()));
+            }
         }
         return ResponseEntity.ok("花名册保存成功");
     }

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterCertificateService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.roster.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.roster.domain.RosterCertificate;
+import com.jeeplus.test.roster.domain.RosterWork;
+import com.jeeplus.test.roster.mapper.RosterCertificateMapper;
+import com.jeeplus.test.roster.mapper.RosterWorkMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterCertificateService extends ServiceImpl<RosterCertificateMapper, RosterCertificate> {
+
+    @Autowired
+    private RosterCertificateMapper rosterCertificateMapper;
+
+
+}

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterEducateService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.roster.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.roster.domain.RosterBankCards;
+import com.jeeplus.test.roster.domain.RosterEducate;
+import com.jeeplus.test.roster.mapper.RosterBankCardsMapper;
+import com.jeeplus.test.roster.mapper.RosterEducateMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterEducateService extends ServiceImpl<RosterEducateMapper, RosterEducate> {
+
+    @Autowired
+    private RosterEducateMapper rosterEducateMapper;
+
+
+}

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterFamilyService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.roster.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.roster.domain.RosterFamily;
+import com.jeeplus.test.roster.domain.RosterWork;
+import com.jeeplus.test.roster.mapper.RosterFamilyMapper;
+import com.jeeplus.test.roster.mapper.RosterWorkMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterFamilyService extends ServiceImpl<RosterFamilyMapper, RosterFamily> {
+
+    @Autowired
+    private RosterFamilyMapper rosterFamilyMapper;
+
+
+}

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterFilesService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.roster.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.roster.domain.RosterCertificate;
+import com.jeeplus.test.roster.domain.RosterFiles;
+import com.jeeplus.test.roster.mapper.RosterCertificateMapper;
+import com.jeeplus.test.roster.mapper.RosterFilesMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterFilesService extends ServiceImpl<RosterFilesMapper, RosterFiles> {
+
+    @Autowired
+    private RosterFilesMapper rosterFilesMapper;
+
+
+}

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterWorkService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.roster.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.roster.domain.RosterEducate;
+import com.jeeplus.test.roster.domain.RosterWork;
+import com.jeeplus.test.roster.mapper.RosterEducateMapper;
+import com.jeeplus.test.roster.mapper.RosterWorkMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterWorkService extends ServiceImpl<RosterWorkMapper, RosterWork> {
+
+    @Autowired
+    private RosterWorkMapper rosterWorkMapper;
+
+
+}

+ 35 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBaseDTO.java

@@ -232,5 +232,40 @@ public class RosterBaseDTO extends BaseDTO {
      */
     private List<RosterBankCardsDTO> rosterBankCardsDTOList;
 
+    /**
+     * 教育经历
+     */
+    private List<RosterEducateDTO> rosterEducateDTOList;
+
+    /**
+     * 工作经历
+     */
+    private List<RosterWorkDTO> rosterWorkDTOList;
+
+    /**
+     * 家庭成员
+     */
+    private List<RosterFamilyDTO> rosterFamilyDTOList;
+
+    /**
+     * 员工证书
+     */
+    private List<RosterCertificateDTO> rosterCertificateDTOList;
+
+    /**
+     * 附件
+     */
+    private List<RosterFilesDTO> rosterFilesDTOList;
+
+    /**
+     * 头像
+     */
+    private String headshot;
+
+    /**
+     * 头像
+     */
+    private String headshotLsUrl;
+
     private static final long serialVersionUID = 1L;
 }

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterEducateDTO.java

@@ -57,9 +57,23 @@ public class RosterEducateDTO extends BaseDTO {
     private String educationCertFirst;
 
     /**
+     * 教育证书照1
+     */
+    private String educationCertFirstLsUrl;
+
+    /**
      * 教育证书照2
      */
     private String educationCertSecond;
 
+    /**
+     * 教育证书照2
+     */
+    private String educationCertSecondLsUrl;
+
+    /**
+     * 学历
+     */
+    private String degree;
     private static final long serialVersionUID = 1L;
 }

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterFamilyDTO.java

@@ -46,5 +46,10 @@ public class RosterFamilyDTO extends BaseDTO {
      */
     private String birthCertificate;
 
+    /**
+     * 出生证明
+     */
+    private String birthCertificateLsUrl;
+
     private static final long serialVersionUID = 1L;
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterCertificateWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.roster.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.roster.domain.RosterCertificate;
+import com.jeeplus.test.roster.domain.RosterFiles;
+import com.jeeplus.test.roster.service.dto.RosterCertificateDTO;
+import com.jeeplus.test.roster.service.dto.RosterFilesDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterCertificateWrapper extends EntityWrapper<RosterCertificateDTO, RosterCertificate> {
+
+    RosterCertificateWrapper INSTANCE = Mappers.getMapper(RosterCertificateWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterEducateWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.roster.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.roster.domain.RosterBankCards;
+import com.jeeplus.test.roster.domain.RosterEducate;
+import com.jeeplus.test.roster.service.dto.RosterBankCardsDTO;
+import com.jeeplus.test.roster.service.dto.RosterEducateDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterEducateWrapper extends EntityWrapper<RosterEducateDTO, RosterEducate> {
+
+    RosterEducateWrapper INSTANCE = Mappers.getMapper(RosterEducateWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterFamilyWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.roster.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.roster.domain.RosterEducate;
+import com.jeeplus.test.roster.domain.RosterFamily;
+import com.jeeplus.test.roster.service.dto.RosterEducateDTO;
+import com.jeeplus.test.roster.service.dto.RosterFamilyDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterFamilyWrapper extends EntityWrapper<RosterFamilyDTO, RosterFamily> {
+
+    RosterFamilyWrapper INSTANCE = Mappers.getMapper(RosterFamilyWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterFilesWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.roster.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.roster.domain.RosterFiles;
+import com.jeeplus.test.roster.domain.RosterWork;
+import com.jeeplus.test.roster.service.dto.RosterFilesDTO;
+import com.jeeplus.test.roster.service.dto.RosterWorkDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterFilesWrapper extends EntityWrapper<RosterFilesDTO, RosterFiles> {
+
+    RosterFilesWrapper INSTANCE = Mappers.getMapper(RosterFilesWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterWorkWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.roster.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.roster.domain.RosterFamily;
+import com.jeeplus.test.roster.domain.RosterWork;
+import com.jeeplus.test.roster.service.dto.RosterFamilyDTO;
+import com.jeeplus.test.roster.service.dto.RosterWorkDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterWorkWrapper extends EntityWrapper<RosterWorkDTO, RosterWork> {
+
+    RosterWorkWrapper INSTANCE = Mappers.getMapper(RosterWorkWrapper.class);
+
+}