瀏覽代碼

离职员工离职功能

lizhenhao 2 年之前
父節點
當前提交
23184e1e6f
共有 13 個文件被更改,包括 669 次插入0 次删除
  1. 102 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionController.java
  2. 75 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimission.java
  3. 36 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionRea.java
  4. 25 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionMapper.java
  5. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionReaMapper.java
  6. 105 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionMapper.xml
  7. 30 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionReaMapper.xml
  8. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionReaService.java
  9. 92 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionService.java
  10. 102 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionDTO.java
  11. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionReaDTO.java
  12. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionReaWrapper.java
  13. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionWrapper.java

+ 102 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionController.java

@@ -0,0 +1,102 @@
+package com.jeeplus.test.changes.dimission.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+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.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.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.ChangesDimissionService;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.RosterBaseService;
+import io.swagger.annotations.Api;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api("异动管理-离职")
+@RestController
+@RequestMapping(value = "/changes/dimission")
+public class ChangesDimissionController {
+
+    @Resource
+    private ChangesDimissionService changesDimissionService;
+    @Resource
+    private RosterBaseService rosterBaseService;
+
+    /**
+     * 查询离职列表
+     * @param changesDimissionDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询离职列表")
+    @PreAuthorize("hasAuthority('changes:dimission:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<ChangesDimissionDTO>> data(ChangesDimissionDTO changesDimissionDTO, Page<ChangesDimissionDTO> page) throws Exception {
+        ChangesDimission changesDimission = ChangesDimissionWrapper.INSTANCE.toEntity(changesDimissionDTO);
+        QueryWrapper<ChangesDimission> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( changesDimission, ChangesDimission.class );
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(ObjectUtil.isNotEmpty(changesDimissionDTO.getRosterBaseDTO())){
+                if(StringUtils.isNotBlank(changesDimissionDTO.getRosterBaseDTO().getName())){
+                    List<String> collect = rosterBaseService.list(new QueryWrapper<RosterBase>().lambda().like(RosterBase::getName, changesDimissionDTO.getRosterBaseDTO().getName()))
+                            .stream().map(RosterBase::getId).collect(Collectors.toList());
+                    queryWrapper.lambda().in(ChangesDimission::getRosterId,collect);
+                }
+            }
+        }
+        IPage<ChangesDimissionDTO> result = changesDimissionService.findList (page,queryWrapper);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
+     * 查询离职数据
+     * @param id
+     * @return
+     */
+    @ApiLog("查询离职详情")
+    @PreAuthorize ("hasAnyAuthority('changes:dimission:view','changes:dimission:add','changes:dimission:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("id") String id) {
+        ChangesDimissionDTO changesDimissionDTO = changesDimissionService.queryById ( id );
+        return ResponseEntity.ok (changesDimissionDTO);
+    }
+
+    /**
+     * 添加花名册
+     * @param changesDimissionDTO
+     * @return
+     */
+    @ApiLog(value = "修改/新增离职", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody ChangesDimissionDTO changesDimissionDTO) {
+        return changesDimissionService.saveDimission(changesDimissionDTO);
+    }
+
+    /**
+     * 删除离职
+     * @param ids
+     * @return
+     */
+    @ApiLog(value = "删除离职", type = LogTypeEnum.SAVE)
+    @PreAuthorize ("hasAuthority('changes:dimission:del')")
+    @DeleteMapping("delete")
+    public ResponseEntity delete(String ids) {
+        String idArray[] =ids.split(",");
+        changesDimissionService.removeByIds (Lists.newArrayList (idArray));
+        return ResponseEntity.ok ("删除离职成功");
+    }
+}

+ 75 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimission.java

@@ -0,0 +1,75 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职
+ * @TableName changes_dimission
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission")
+public class ChangesDimission extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String rosterId;
+
+    /**
+     * 最后工作日
+     */
+    private Date lastWorkDate;
+
+    /**
+     * 离职日期
+     */
+    private Date dimissionDate;
+
+    /**
+     * 原因说明
+     */
+    private String reasonDesc;
+
+    /**
+     * 离职类型
+     */
+    private String type;
+
+    /**
+     * 离职审批
+     */
+    private String vettingStatus;
+
+    /**
+     * 离职交接
+     */
+    private String handoverStatus;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 薪资结算日
+     */
+    private Date payrollSettlementDate;
+
+    /**
+     * 申请日期
+     */
+    private Date requestDate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 36 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionRea.java

@@ -0,0 +1,36 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-离职原因
+ * @TableName changes_dimission_rea
+ */
+@Data
+@TableName("changes_dimission_rea")
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionRea extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 离职原因
+     */
+    private String dimissionReason;
+
+    private static final long serialVersionUID = 1L;
+}

+ 25 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionMapper.java

@@ -0,0 +1,25 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimission
+*/
+@Mapper
+public interface ChangesDimissionMapper extends BaseMapper<ChangesDimission> {
+
+    public IPage<ChangesDimissionDTO> findList(Page<ChangesDimissionDTO> page, @Param(Constants.WRAPPER) QueryWrapper<ChangesDimission> queryWrapper);
+
+    public ChangesDimissionDTO queryById(@Param("id") String id);
+
+}

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionReaMapper.java

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

+ 105 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionMapper.xml

@@ -0,0 +1,105 @@
+<?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.changes.dimission.mapper.ChangesDimissionMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO">
+            <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="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="rosterId" column="roster_id" jdbcType="VARCHAR"/>
+            <result property="lastWorkDate" column="last_work_date" jdbcType="TIMESTAMP"/>
+            <result property="dimissionDate" column="dimission_date" jdbcType="TIMESTAMP"/>
+            <result property="reasonDesc" column="reason_desc" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="vettingStatus" column="vetting_status" jdbcType="VARCHAR"/>
+            <result property="handoverStatus" column="handover_status" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <result property="payrollSettlementDate" column="payroll_settlement_date" jdbcType="TIMESTAMP"/>
+            <result property="requestDate" column="request_date" jdbcType="TIMESTAMP"/>
+            <result property="rosterBaseDTO.name" column="rb_name" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.jobNo" column="rb_job_no" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.mobile" column="rb_mobile" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.onboardingDate" column="rb_onboarding_date" jdbcType="TIMESTAMP"/>
+            <result property="soName" column="so_name" jdbcType="VARCHAR"/>
+            <result property="jpName" column="jp_name" jdbcType="VARCHAR"/>
+            <collection property="changesDimissionReaDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO" column="id" select="getRea"></collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cd.id,
+        cd.create_by,
+        cd.create_date,
+        cd.update_by,
+        cd.update_date,
+        cd.del_flag,
+        cd.remarks,
+        cd.roster_id,
+        cd.last_work_date,
+        cd.dimission_date,
+        cd.reason_desc,
+        cd.type,
+        cd.vetting_status,
+        cd.handover_status,
+        cd.status,
+        cd.payroll_settlement_date,
+        cd.request_date
+    </sql>
+    <sql id="Rea_Column_List">
+        cdr.id,
+        cdr.create_by,
+        cdr.create_date,
+        cdr.update_by,
+        cdr.update_date,
+        cdr.del_flag,
+        cdr.remarks,
+        cdr.cd_id,
+        cdr.dimission_reason
+    </sql>
+
+
+    <select id="getRea" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO">
+        select
+        <include refid="Rea_Column_List"></include>
+        from changes_dimission_rea cdr
+        where cdr.del_flag = '0' and cdr.cd_id = #{id}
+    </select>
+
+    <select id="findList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>,
+        rb.name rb_name,
+        rb.job_no rb_job_no,
+        rb.mobile rb_mobile,
+        rb.onboarding_date rb_onboarding_date,
+        so.name so_name,
+        jp.name jp_name
+        from changes_dimission cd
+        left join roster_base rb on rb.id = cd.roster_id and rb.del_flag = '0'
+        left join sys_office so on so.id = rb.office_id and so.del_flag = '0'
+        left join job_position jp on jp.id = rb.job_position_id and jp.del_flag = '0'
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="queryById" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>,
+        rb.name rb_name,
+        rb.job_no rb_job_no,
+        rb.mobile rb_mobile,
+        rb.onboarding_date rb_onboarding_date,
+        so.name so_name,
+        jp.name jp_name
+        from changes_dimission cd
+        left join roster_base rb on rb.id = cd.roster_id and rb.del_flag = '0'
+        left join sys_office so on so.id = rb.office_id and so.del_flag = '0'
+        left join job_position jp on jp.id = rb.job_position_id and jp.del_flag = '0'
+        where cd.del_flag = '0' and cd.id = #{id}
+    </select>
+
+</mapper>

+ 30 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionReaMapper.xml

@@ -0,0 +1,30 @@
+<?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.changes.dimission.mapper.ChangesDimissionReaMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO">
+            <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="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="cdId" column="cd_id" jdbcType="VARCHAR"/>
+            <result property="dimissionReason" column="dimission_reason" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdr.id,
+        cdr.create_by,
+        cdr.create_date,
+        cdr.update_by,
+        cdr.update_date,
+        cdr.del_flag,
+        cdr.remarks,
+        cdr.cd_id,
+        cdr.dimission_reason
+    </sql>
+</mapper>

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionReaService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionReaMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+@Service
+@Transactional
+public class ChangesDimissionReaService extends ServiceImpl<ChangesDimissionReaMapper, ChangesDimissionRea> {
+
+    @Resource
+    private ChangesDimissionReaMapper changesDimissionReaMapper;
+
+}

+ 92 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionService.java

@@ -0,0 +1,92 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionService extends ServiceImpl<ChangesDimissionMapper, ChangesDimission> {
+
+    @Resource
+    private ChangesDimissionMapper changesDimissionMapper;
+    @Resource
+    private ChangesDimissionReaService changesDimissionReaService;
+
+    public IPage<ChangesDimissionDTO> findList(Page<ChangesDimissionDTO> page, QueryWrapper<ChangesDimission> queryWrapper){
+        queryWrapper.eq("cd.del_flag","0");
+        return changesDimissionMapper.findList(page,queryWrapper);
+    }
+
+    public ChangesDimissionDTO queryById(String id) {
+
+        ChangesDimissionDTO changesDimissionDTO = changesDimissionMapper.queryById(id);
+
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getChangesDimissionReaDTOList())){
+                List<String> collect = changesDimissionDTO.getChangesDimissionReaDTOList().stream().map(ChangesDimissionReaDTO::getDimissionReason).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(collect)){
+                    changesDimissionDTO.setReaTypeList(collect);
+                }
+            }
+        }
+
+        return changesDimissionDTO;
+    }
+
+    public ResponseEntity saveDimission(ChangesDimissionDTO changesDimissionDTO) {
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(StringUtils.isNotBlank(changesDimissionDTO.getId())){
+                List<ChangesDimission> list = this.list(new QueryWrapper<ChangesDimission>().lambda()
+                        .eq(ChangesDimission::getRosterId, changesDimissionDTO.getRosterId())
+                        .ne(ChangesDimission::getId, changesDimissionDTO.getId()));
+                if(CollectionUtil.isNotEmpty(list)){
+                    return ResponseEntity.badRequest().body("此员工已提交离职,请勿重复提交");
+                }
+            }else{
+                List<ChangesDimission> list = this.list(new QueryWrapper<ChangesDimission>().lambda()
+                        .eq(ChangesDimission::getRosterId, changesDimissionDTO.getRosterId()));
+                if(CollectionUtil.isNotEmpty(list)){
+                    return ResponseEntity.badRequest().body("此员工已提交离职,请勿重复提交");
+                }
+            }
+        }
+        ChangesDimission changesDimission = ChangesDimissionWrapper.INSTANCE.toEntity(changesDimissionDTO);
+        this.saveOrUpdate(changesDimission);
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getReaTypeList())){
+                changesDimissionReaService.remove(new QueryWrapper<ChangesDimissionRea>().lambda()
+                                                    .eq(ChangesDimissionRea::getCdId,changesDimission.getId()));
+                List<ChangesDimissionRea> reaList = new ArrayList<>();
+                changesDimissionDTO.getReaTypeList().stream().forEach(item->{
+                    ChangesDimissionRea rea = new ChangesDimissionRea();
+                    rea.setCdId(changesDimission.getId());
+                    rea.setDimissionReason(item);
+                    reaList.add(rea);
+                });
+                changesDimissionReaService.saveBatch(reaList);
+            }
+        }
+        return ResponseEntity.ok("保存成功");
+    }
+}

+ 102 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionDTO.java

@@ -0,0 +1,102 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 异动管理-离职
+ * @TableName changes_dimission
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String rosterId;
+
+    /**
+     * 最后工作日
+     */
+    private Date lastWorkDate;
+
+    /**
+     * 离职日期
+     */
+    private Date dimissionDate;
+
+    /**
+     * 原因说明
+     */
+    private String reasonDesc;
+
+    /**
+     * 离职类型
+     */
+    private String type;
+
+    /**
+     * 离职审批
+     */
+    private String vettingStatus;
+
+    /**
+     * 离职交接
+     */
+    private String handoverStatus;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 薪资结算日
+     */
+    private Date payrollSettlementDate;
+
+    /**
+     * 申请日期
+     */
+    private Date requestDate;
+
+    /**
+     * 离职原因详情
+     */
+    private List<ChangesDimissionReaDTO> changesDimissionReaDTOList;
+
+    /**
+     * 离职原因
+     */
+    private List<String> reaTypeList;
+
+    /**
+     * 人员信息
+     */
+    private RosterBaseDTO rosterBaseDTO;
+
+    /**
+     * 部门
+     */
+    private String soName;
+
+    /**
+     * 职位
+     */
+    private String jpName;
+
+    private static final long serialVersionUID = 1L;
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionReaDTO.java

@@ -0,0 +1,34 @@
+package com.jeeplus.test.changes.dimission.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 changes_dimission_rea
+ */
+@Data
+@TableName("changes_dimission_rea")
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionReaDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 离职原因
+     */
+    private String dimissionReason;
+
+    private static final long serialVersionUID = 1L;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionReaWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionReaWrapper extends EntityWrapper<ChangesDimissionReaDTO, ChangesDimissionRea>{
+
+        ChangesDimissionReaWrapper INSTANCE = Mappers.getMapper(ChangesDimissionReaWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.jobPosion.domain.JobPosition;
+import com.jeeplus.test.jobPosion.service.dto.JobPositionDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionWrapper extends EntityWrapper<ChangesDimissionDTO, ChangesDimission>{
+
+        ChangesDimissionWrapper INSTANCE = Mappers.getMapper(ChangesDimissionWrapper.class);
+
+}