Browse Source

离职确认功能

lizhenhao 2 năm trước cách đây
mục cha
commit
0f20a8cfe2

+ 12 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionController.java

@@ -95,8 +95,17 @@ public class ChangesDimissionController {
     @PreAuthorize ("hasAuthority('changes:dimission:del')")
     @DeleteMapping("delete")
     public ResponseEntity delete(String ids) {
-        String idArray[] =ids.split(",");
-        changesDimissionService.removeByIds (Lists.newArrayList (idArray));
-        return ResponseEntity.ok ("删除离职成功");
+        return changesDimissionService.deleteByIds(ids);
+    }
+
+    /**
+     * 取消确认
+     * @param id
+     * @return
+     */
+    @ApiLog(value = "取消确认", type = LogTypeEnum.SAVE)
+    @GetMapping("updateStatus")
+    public ResponseEntity updateStatus(String id) {
+        return changesDimissionService.updateStatus(id);
     }
 }

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionFiles.java

@@ -0,0 +1,37 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-附件
+ * @TableName changes_dimission_files
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission_files")
+public class ChangesDimissionFiles extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 附件url
+     */
+    private String url;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionFilesMapper.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.ChangesDimissionFiles;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles
+*/
+@Mapper
+public interface ChangesDimissionFilesMapper extends BaseMapper<ChangesDimissionFiles> {
+
+
+}

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

@@ -0,0 +1,31 @@
+<?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.ChangesDimissionFilesMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO">
+            <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="url" column="url" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdf.id,
+        cdf.create_by,
+        cdf.create_date,
+        cdf.update_by,
+        cdf.update_date,
+        cdf.del_flag,
+        cdf.remarks,
+        cdf.cd_id,
+        cdf.url,
+        cdf.name
+    </sql>
+</mapper>

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

@@ -29,6 +29,7 @@
             <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>
+            <collection property="changesDimissionFilesDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO" column="id" select="getFiles"></collection>
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -61,6 +62,18 @@
         cdr.cd_id,
         cdr.dimission_reason
     </sql>
+    <sql id="Files_Column_List">
+        cdf.id,
+        cdf.create_by,
+        cdf.create_date,
+        cdf.update_by,
+        cdf.update_date,
+        cdf.del_flag,
+        cdf.remarks,
+        cdf.cd_id,
+        cdf.url,
+        cdf.name
+    </sql>
 
 
     <select id="getRea" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO">
@@ -69,6 +82,28 @@
         from changes_dimission_rea cdr
         where cdr.del_flag = '0' and cdr.cd_id = #{id}
     </select>
+    <select id="getFiles" resultMap="FilesMap">
+        select
+        <include refid="Files_Column_List"></include>,
+        su.name su_name
+        from changes_dimission_files cdf
+        left join sys_user su on cdf.create_by = su.id and su.del_flag = '0'
+        where cdf.del_flag = '0' and cdf.cd_id = #{id}
+        order by cdf.create_date desc
+    </select>
+    <resultMap id="FilesMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO">
+        <id column="id" jdbcType="VARCHAR" property="id" />
+        <result column="create_by" jdbcType="VARCHAR" property="createBy.id" />
+        <result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
+        <result column="update_by" jdbcType="VARCHAR" property="updateBy.id" />
+        <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
+        <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+        <result column="cd_id" jdbcType="VARCHAR" property="cdId" />
+        <result column="url" jdbcType="VARCHAR" property="url" />
+        <result column="name" jdbcType="VARCHAR" property="name" />
+        <result column="su_name" jdbcType="VARCHAR" property="createBy.name" />
+    </resultMap>
 
     <select id="findList" resultMap="BaseResultMap">
         select

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionFilesService.java

@@ -0,0 +1,13 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionFilesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionFilesService extends ServiceImpl<ChangesDimissionFilesMapper, ChangesDimissionFiles> {
+
+}

+ 46 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionService.java

@@ -3,15 +3,20 @@ 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.conditions.update.UpdateWrapper;
 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.google.common.collect.Lists;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
 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.ChangesDimissionFilesDTO;
 import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionFilesWrapper;
 import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
 import com.jeeplus.test.roster.domain.RosterBase;
 import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
@@ -32,6 +37,8 @@ public class ChangesDimissionService extends ServiceImpl<ChangesDimissionMapper,
     private ChangesDimissionMapper changesDimissionMapper;
     @Resource
     private ChangesDimissionReaService changesDimissionReaService;
+    @Resource
+    private ChangesDimissionFilesService changesDimissionFilesService;
 
     public IPage<ChangesDimissionDTO> findList(Page<ChangesDimissionDTO> page, QueryWrapper<ChangesDimission> queryWrapper){
         queryWrapper.eq("cd.del_flag","0");
@@ -72,11 +79,14 @@ public class ChangesDimissionService extends ServiceImpl<ChangesDimissionMapper,
             }
         }
         ChangesDimission changesDimission = ChangesDimissionWrapper.INSTANCE.toEntity(changesDimissionDTO);
+        changesDimission.setVettingStatus("1");
+        changesDimission.setHandoverStatus("1");
         this.saveOrUpdate(changesDimission);
         if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
             if(CollectionUtil.isNotEmpty(changesDimissionDTO.getReaTypeList())){
                 changesDimissionReaService.remove(new QueryWrapper<ChangesDimissionRea>().lambda()
-                                                    .eq(ChangesDimissionRea::getCdId,changesDimission.getId()));
+                        .eq(ChangesDimissionRea::getCdId,changesDimission.getId())
+                );
                 List<ChangesDimissionRea> reaList = new ArrayList<>();
                 changesDimissionDTO.getReaTypeList().stream().forEach(item->{
                     ChangesDimissionRea rea = new ChangesDimissionRea();
@@ -86,7 +96,42 @@ public class ChangesDimissionService extends ServiceImpl<ChangesDimissionMapper,
                 });
                 changesDimissionReaService.saveBatch(reaList);
             }
+
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getChangesDimissionFilesDTOList())){
+                List<String> fileIdList = changesDimissionDTO.getChangesDimissionFilesDTOList().stream()
+                        .filter(item -> StringUtils.isNotBlank(item.getId()))
+                        .map(ChangesDimissionFilesDTO::getId).collect(Collectors.toList());
+                changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda()
+                        .eq(ChangesDimissionFiles::getCdId,changesDimission.getId())
+                        .notIn(CollectionUtil.isNotEmpty(fileIdList),ChangesDimissionFiles::getId,fileIdList)
+                );
+                List<ChangesDimissionFiles> fileList = new ArrayList<>();
+                changesDimissionDTO.getChangesDimissionFilesDTOList().stream().forEach(item->{
+                    ChangesDimissionFiles file = ChangesDimissionFilesWrapper.INSTANCE.toEntity(item);
+                    file.setCdId(changesDimission.getId());
+                    fileList.add(file);
+                });
+                changesDimissionFilesService.saveOrUpdateBatch(fileList);
+            }else{
+                changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda()
+                        .eq(ChangesDimissionFiles::getCdId,changesDimission.getId())
+                );
+            }
         }
         return ResponseEntity.ok("保存成功");
     }
+
+    public ResponseEntity deleteByIds(String ids) {
+        String idArray[] =ids.split(",");
+        this.removeByIds (Lists.newArrayList (idArray));
+        changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda().in(ChangesDimissionFiles::getCdId,Lists.newArrayList (idArray)));
+        changesDimissionReaService.remove(new QueryWrapper<ChangesDimissionRea>().lambda().in(ChangesDimissionRea::getCdId,Lists.newArrayList (idArray)));
+        return ResponseEntity.ok ("删除离职成功");
+    }
+
+    public ResponseEntity updateStatus(String id){
+        this.update(new UpdateWrapper<ChangesDimission>().lambda().set(ChangesDimission::getStatus,'1').eq(ChangesDimission::getId,id));
+        return ResponseEntity.ok ("取消确认成功");
+    }
+
 }

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

@@ -98,5 +98,10 @@ public class ChangesDimissionDTO extends BaseDTO {
      */
     private String jpName;
 
+    /**
+     * 附件
+     */
+    private List<ChangesDimissionFilesDTO> changesDimissionFilesDTOList;
+
     private static final long serialVersionUID = 1L;
 }

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

@@ -0,0 +1,37 @@
+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_files
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionFilesDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 附件url
+     */
+    private String url;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionFilesWrapper.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.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+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 ChangesDimissionFilesWrapper extends EntityWrapper<ChangesDimissionFilesDTO, ChangesDimissionFiles>{
+
+        ChangesDimissionFilesWrapper INSTANCE = Mappers.getMapper(ChangesDimissionFilesWrapper.class);
+
+}