Procházet zdrojové kódy

花名册-合同信息、银行卡信息

lizhenhao před 3 roky
rodič
revize
32c172092d
17 změnil soubory, kde provedl 523 přidání a 8 odebrání
  1. 38 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/jobPosion/utils/BeanUtils.java
  2. 42 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/oss/service/OssService.java
  3. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/controller/RosterBaseController.java
  4. 62 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBankCards.java
  5. 5 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBase.java
  6. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/RosterBankCardsMapper.java
  7. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBankCardsMapper.xml
  8. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml
  9. 14 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterContractMapper.xml
  10. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBankCardsService.java
  11. 65 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java
  12. 29 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterContractService.java
  13. 64 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBankCardsDTO.java
  14. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBaseDTO.java
  15. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterBankCardsWrapper.java
  16. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterContractWrapper.java
  17. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/user/service/dto/FileUrlDto.java

+ 38 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/jobPosion/utils/BeanUtils.java

@@ -1,10 +1,13 @@
 package com.jeeplus.test.jobPosion.utils;
 
 import com.jeeplus.test.jobPosion.annotation.ForUpdate;
+import lombok.extern.log4j.Log4j;
+import lombok.extern.log4j.Log4j2;
 
 import java.lang.reflect.Field;
+import java.lang.reflect.Type;
 import java.util.Objects;
-
+@Log4j2
 public class BeanUtils {
     /**
      * 获取变更内容
@@ -37,4 +40,38 @@ public class BeanUtils {
         }
         return builder.toString();
     }
+
+    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())){
+                    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;
+    }
 }

+ 42 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/oss/service/OssService.java

@@ -10,17 +10,22 @@ import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.oss.mapper.OssServiceMapper;
 import com.jeeplus.test.oss.service.dto.OssServiceDto;
+import com.jeeplus.test.user.service.dto.FileUrlDto;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.flowable.editor.language.json.converter.util.CollectionUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.IOException;
 import java.net.URL;
 import java.net.URLEncoder;
 import java.util.*;
@@ -50,6 +55,13 @@ public class OssService {
     @Resource
     private OssServiceMapper ossServiceMapper;
 
+    private static final String DIRECTORY = "attachment-file/assess";
+
+    private static final String ALIYUNURL = "http://oss.gangwaninfo.com";
+
+    @Resource
+    private OSSClientService ossClientService;
+
     /**
      * 保存数据
      * @param workAttachments
@@ -164,7 +176,13 @@ public class OssService {
         }else {
             cons = aliyunDownloadUrl;
         }
-        String key = url.split(cons+"/")[1];
+        String key = "";
+        String[] split = url.split(cons + "/");
+        if(split.length>1){
+            key = split[1];
+        }else{
+            key = url;
+        }
         // 指定过期时间为24小时。
         Date expiration = new Date(new Date().getTime() + 1000 * 60 * 60 * 24 );
         //初始化OSSClient
@@ -211,4 +229,27 @@ public class OssService {
         }
     }
 
+    /**
+     * 上传文件
+     * @param file
+     * @param dir 存放文件夹名称
+     * @return
+     * @throws Exception
+     */
+    public FileUrlDto webUpload(MultipartFile file, String dir) throws IOException {
+        FileUrlDto dto = new FileUrlDto();
+        // 文件保存路径
+        String fileDir =DIRECTORY+"/"+dir+ossClientService.datePath()+"/"+ System.currentTimeMillis();
+        // 判断文件是否为空
+        if (!file.isEmpty()) {
+            String name = file.getOriginalFilename ();
+            ossClientService.uploadFile2OSS(file.getInputStream(), fileDir, name);
+            String url = fileDir +name;
+            String lsUrl = this.getFileTemporaryLookUrl(ALIYUNURL + "/" + fileDir +name);
+            dto.setUrl(url);
+            dto.setLsUrl(lsUrl);
+        }
+        return dto;
+    }
+
 }

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/controller/RosterBaseController.java

@@ -9,6 +9,7 @@ import com.google.common.collect.Lists;
 import com.jeeplus.aop.logging.annotation.ApiLog;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.test.oss.service.OssService;
 import com.jeeplus.test.rank.domain.Rank;
 import com.jeeplus.test.rank.domain.RankRRs;
 import com.jeeplus.test.rank.domain.RankSequence;
@@ -23,14 +24,18 @@ import com.jeeplus.test.roster.domain.RosterBase;
 import com.jeeplus.test.roster.service.RosterBaseService;
 import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
 import com.jeeplus.test.roster.service.mapstruct.RosterBaseWrapper;
+import com.jeeplus.test.user.service.dto.FileUrlDto;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -43,6 +48,9 @@ public class RosterBaseController {
     @Autowired
     private RosterBaseService rosterBaseService;
 
+    @Autowired
+    private OssService ossService;
+
     /**
      * 查询花名册列表
      * @param rosterBaseDTO
@@ -99,4 +107,17 @@ public class RosterBaseController {
         return ResponseEntity.ok ("删除花名册成功");
     }
 
+    /**
+     * 上传文件
+     * @return
+     * @throws IOException
+     */
+    @ApiOperation("上传文件")
+    @RequestMapping("webUpload/upload")
+    public ResponseEntity<FileUrlDto> webUpload(HttpServletRequest request, MultipartFile file) throws IOException {
+        String dir = "roster";
+        FileUrlDto dto = ossService.webUpload(file,dir);
+        return ResponseEntity.ok(dto);
+    }
+
 }

+ 62 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBankCards.java

@@ -0,0 +1,62 @@
+package com.jeeplus.test.roster.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 花名册-银行卡信息
+ * @TableName roster_bank_cards
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("roster_bank_cards")
+public class RosterBankCards extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 基础信息id
+     */
+    private String baseId;
+
+    /**
+     * 工资卡开户银行
+     */
+    private String payrollCardOpenBank;
+
+    /**
+     * 工资卡分支行
+     */
+    private String payrollCardBranches;
+
+    /**
+     * 工资卡银行账号
+     */
+    private String payrollCardBankAccount;
+
+    /**
+     * 工资卡开户名
+     */
+    private String payrollCardOpeningName;
+
+    /**
+     * 工资卡照片
+     */
+    private String payrollCardPic;
+
+    /**
+     * 是否为默认
+     */
+    private String isDefault;
+
+    private static final long serialVersionUID = 1L;
+
+
+}

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

@@ -6,6 +6,8 @@ import java.util.Date;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -26,6 +28,7 @@ public class RosterBase extends BaseEntity {
     /**
      * 姓名
      */
+    @Query(type = QueryType.LIKE, tableColumn = "rb.name")
     private String name;
 
     /**
@@ -61,6 +64,7 @@ public class RosterBase extends BaseEntity {
     /**
      * 证件号
      */
+    @Query(type = QueryType.LIKE, tableColumn = "rb.id_card")
     private String idCard;
 
     /**
@@ -86,12 +90,12 @@ public class RosterBase extends BaseEntity {
     /**
      * 员工类型
      */
+    @Query(type = QueryType.EQ, tableColumn = "rb.worker_type")
     private String workerType;
 
     /**
      * 入职日期
      */
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
     private Date onboardingDate;
 
     /**
@@ -112,7 +116,6 @@ public class RosterBase extends BaseEntity {
     /**
      * 出生日期
      */
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
     private Date birthDate;
 
     /**

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/RosterBankCardsMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.test.roster.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.roster.domain.RosterBankCards;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @Entity com.jeeplus.test.roster.domain.RosterBankCards
+*/
+@Mapper
+public interface RosterBankCardsMapper extends BaseMapper<RosterBankCards> {
+
+
+}

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBankCardsMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.roster.mapper.RosterBankCardsMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.roster.service.dto.RosterBankCardsDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="baseId" column="base_id" jdbcType="VARCHAR"/>
+            <result property="payrollCardOpenBank" column="payroll_card_open_bank" jdbcType="VARCHAR"/>
+            <result property="payrollCardBranches" column="payroll_card_branches" jdbcType="VARCHAR"/>
+            <result property="payrollCardBankAccount" column="payroll_card_bank_account" jdbcType="VARCHAR"/>
+            <result property="payrollCardOpeningName" column="payroll_card_opening_name" jdbcType="VARCHAR"/>
+            <result property="payrollCardPic" column="payroll_card_pic" jdbcType="VARCHAR"/>
+            <result property="isDefault" column="is_default" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        rbc.id,
+        rbc.create_by,
+        rbc.create_date,
+        rbc.update_by,
+        rbc.update_date,
+        rbc.remarks,
+        rbc.del_flag,
+        rbc.base_id,
+        rbc.payroll_card_open_bank,
+        rbc.payroll_card_branches,
+        rbc.payroll_card_bank_account,
+        rbc.payroll_card_opening_name,
+        rbc.payroll_card_pic,
+        rbc.is_default
+    </sql>
+</mapper>

+ 48 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml

@@ -47,6 +47,8 @@
     <result column="qq" jdbcType="VARCHAR" property="qq" />
     <result column="wechat" jdbcType="VARCHAR" property="wechat" />
     <result column="email" jdbcType="VARCHAR" property="email" />
+    <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>
   </resultMap>
   <sql id="Base_Column_List">
     rb.id,
@@ -95,6 +97,38 @@
     rb.wechat,
     rb.email
   </sql>
+  <sql id="Contract_Column_List">
+    rc.id,
+    rc.create_by,
+    rc.create_date,
+    rc.update_by,
+    rc.update_date,
+    rc.remarks,
+    rc.base_id,
+    rc.begin_date,
+    rc.end_date,
+    rc.work_email,
+    rc.work_mobile,
+    rc.probation_period_end_date,
+    rc.probation_period_month,
+    rc.del_flag
+  </sql>
+  <sql id="BankCards_Column_List">
+    rbc.id,
+        rbc.create_by,
+        rbc.create_date,
+        rbc.update_by,
+        rbc.update_date,
+        rbc.remarks,
+        rbc.del_flag,
+        rbc.base_id,
+        rbc.payroll_card_open_bank,
+        rbc.payroll_card_branches,
+        rbc.payroll_card_bank_account,
+        rbc.payroll_card_opening_name,
+        rbc.payroll_card_pic,
+        rbc.is_default
+  </sql>
 
   <select id="findList" resultMap="BaseResultMap">
     select
@@ -103,6 +137,20 @@
     ${ew.customSqlSegment}
   </select>
 
+  <select id="getContractDTO" resultType="com.jeeplus.test.roster.service.dto.RosterContractDTO">
+    select
+    <include refid="Contract_Column_List"></include>
+    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="queryById" resultMap="BaseResultMap">
     select
     <include refid="Base_Column_List"></include>

+ 14 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterContractMapper.xml

@@ -18,8 +18,19 @@
     <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, create_by, create_date, update_by, update_date, remarks, base_id, begin_date, 
-    end_date, work_email, work_mobile, probation_period_end_date, probation_period_month, 
-    del_flag
+    rc.id,
+    rc.create_by,
+    rc.create_date,
+    rc.update_by,
+    rc.update_date,
+    rc.remarks,
+    rc.base_id,
+    rc.begin_date,
+    rc.end_date,
+    rc.work_email,
+    rc.work_mobile,
+    rc.probation_period_end_date,
+    rc.probation_period_month,
+    rc.del_flag
   </sql>
 </mapper>

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBankCardsService.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.RosterContract;
+import com.jeeplus.test.roster.mapper.RosterBankCardsMapper;
+import com.jeeplus.test.roster.mapper.RosterContractMapper;
+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 RosterBankCardsService extends ServiceImpl<RosterBankCardsMapper, RosterBankCards> {
+
+    @Autowired
+    private RosterBankCardsMapper rosterBankCardsMapper;
+
+
+}

+ 65 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java

@@ -1,21 +1,32 @@
 package com.jeeplus.test.roster.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Service
 @Transactional(rollbackFor = Exception.class)
 public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase> {
@@ -23,13 +34,41 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
     @Autowired
     private RosterBaseMapper rosterBaseMapper;
 
+    @Autowired
+    private RosterContractService rosterContractService;
+
+    @Autowired
+    private RosterBankCardsService rosterBankCardsService;
+
+    @Autowired
+    private OssService ossService;
+
     public IPage<RosterBaseDTO> findList(Page<RosterBaseDTO> page, QueryWrapper<RosterBase> queryWrapper){
         queryWrapper.eq("rb.del_flag","0");
         return rosterBaseMapper.findList(page,queryWrapper);
     }
 
     public RosterBaseDTO queryById(String id){
-        return rosterBaseMapper.queryById(id);
+        RosterBaseDTO rosterBaseDTO = rosterBaseMapper.queryById(id);
+        if(ObjectUtil.isNotEmpty(rosterBaseDTO)){
+            if(StrUtil.isNotEmpty(rosterBaseDTO.getCertificatesFront())){
+                String front = ossService.getFileTemporaryLookUrl(rosterBaseDTO.getCertificatesFront());
+                rosterBaseDTO.setCertificatesFrontLsUrl(front);
+            }
+            if(StrUtil.isNotEmpty(rosterBaseDTO.getCertificatesBack())){
+                String back = ossService.getFileTemporaryLookUrl(rosterBaseDTO.getCertificatesBack());
+                rosterBaseDTO.setCertificatesBackLsUrl(back);
+            }
+            if(CollectionUtil.isNotEmpty(rosterBaseDTO.getRosterBankCardsDTOList())){
+                rosterBaseDTO.getRosterBankCardsDTOList().stream().forEach(item->{
+                    if(StrUtil.isNotEmpty(item.getPayrollCardPic())){
+                        String cardPic = ossService.getFileTemporaryLookUrl(item.getPayrollCardPic());
+                        item.setPayrollCardPicLsUrl(cardPic);
+                    }
+                });
+            }
+        }
+        return rosterBaseDTO;
     }
 
     public ResponseEntity saveRoster(RosterBaseDTO rosterBaseDTO){
@@ -41,6 +80,31 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
             }
         }
         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));
+                rosterBaseDTO.getRosterBankCardsDTOList().stream().forEach(item->{
+                    if(ObjectUtil.isNotEmpty(item)&& BeanUtils.objectCheckIsNull(item)){
+                        RosterBankCards rosterBankCards = RosterBankCardsWrapper.INSTANCE.toEntity(item);
+                        rosterBankCards.setBaseId(rosterBase.getId());
+                        rosterBankCardsService.saveOrUpdate(rosterBankCards);
+                    }
+                });
+            }else{
+                rosterBankCardsService.remove(new QueryWrapper<RosterBankCards>().eq("base_id",rosterBase.getId()));
+            }
+        }
         return ResponseEntity.ok("花名册保存成功");
     }
 }

+ 29 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterContractService.java

@@ -0,0 +1,29 @@
+package com.jeeplus.test.roster.service;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.oss.service.OssService;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.domain.RosterContract;
+import com.jeeplus.test.roster.mapper.RosterBaseMapper;
+import com.jeeplus.test.roster.mapper.RosterContractMapper;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import com.jeeplus.test.roster.service.mapstruct.RosterBaseWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RosterContractService extends ServiceImpl<RosterContractMapper, RosterContract> {
+
+    @Autowired
+    private RosterContractMapper rosterContractMapper;
+
+
+}

+ 64 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBankCardsDTO.java

@@ -0,0 +1,64 @@
+package com.jeeplus.test.roster.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 花名册-银行卡信息
+ * @TableName roster_bank_cards
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RosterBankCardsDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 基础信息id
+     */
+    private String baseId;
+
+    /**
+     * 工资卡开户银行
+     */
+    private String payrollCardOpenBank;
+
+    /**
+     * 工资卡分支行
+     */
+    private String payrollCardBranches;
+
+    /**
+     * 工资卡银行账号
+     */
+    private String payrollCardBankAccount;
+
+    /**
+     * 工资卡开户名
+     */
+    private String payrollCardOpeningName;
+
+    /**
+     * 工资卡照片
+     */
+    private String payrollCardPic;
+
+    /**
+     * 是否为默认
+     */
+    private String isDefault;
+
+    /**
+     * 工资卡照片
+     */
+    private String payrollCardPicLsUrl;
+
+    private static final long serialVersionUID = 1L;
+
+
+}

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

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * roster_base
@@ -67,11 +68,21 @@ public class RosterBaseDTO extends BaseDTO {
     private String certificatesFront;
 
     /**
+     * 证件照正面
+     */
+    private String certificatesFrontLsUrl;
+
+    /**
      * 证件照反面
      */
     private String certificatesBack;
 
     /**
+     * 证件照反面
+     */
+    private String certificatesBackLsUrl;
+
+    /**
      * 手机号码
      */
     private String mobile;
@@ -211,5 +222,15 @@ public class RosterBaseDTO extends BaseDTO {
      */
     private String email;
 
+    /**
+     * 合同信息
+     */
+    private RosterContractDTO rosterContractDTO;
+
+    /**
+     * 银行卡信息
+     */
+    private List<RosterBankCardsDTO> rosterBankCardsDTOList;
+
     private static final long serialVersionUID = 1L;
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/mapstruct/RosterBankCardsWrapper.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.RosterContract;
+import com.jeeplus.test.roster.service.dto.RosterBankCardsDTO;
+import com.jeeplus.test.roster.service.dto.RosterContractDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RosterBankCardsWrapper extends EntityWrapper<RosterBankCardsDTO, RosterBankCards> {
+
+    RosterBankCardsWrapper INSTANCE = Mappers.getMapper(RosterBankCardsWrapper.class);
+
+}

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

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

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/user/service/dto/FileUrlDto.java

@@ -5,8 +5,14 @@ import lombok.Data;
 @Data
 public class FileUrlDto {
 
+    /**
+     * 存在数据库中的路径
+     */
     private String url;
 
+    /**
+     * 用于直接访问的全路径
+     */
     private String lsUrl;
 
 }