浏览代码

职级模块-体系表开发

lizhenhao 2 年之前
父节点
当前提交
74b01e6aa6
共有 31 个文件被更改,包括 1287 次插入50 次删除
  1. 3 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankController.java
  2. 5 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankSequenceController.java
  3. 154 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankSystemTableController.java
  4. 51 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstLevel.java
  5. 50 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstPosition.java
  6. 51 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstPost.java
  7. 41 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstRl.java
  8. 46 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankSystemTable.java
  9. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstLevelMapper.java
  10. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstPositionMapper.java
  11. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstPostMapper.java
  12. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstRlMapper.java
  13. 26 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankSystemTableMapper.java
  14. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankMapper.xml
  15. 23 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstLevelMapper.xml
  16. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstPositionMapper.xml
  17. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstPostMapper.xml
  18. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstRlMapper.xml
  19. 202 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankSystemTableMapper.xml
  20. 27 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankSequenceService.java
  21. 25 40
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankService.java
  22. 123 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankSystemTableService.java
  23. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstLevelDTO.java
  24. 50 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstPositionDTO.java
  25. 50 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstPostDTO.java
  26. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstRlDTO.java
  27. 104 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankSystemTableDTO.java
  28. 13 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RsSaveDTO.java
  29. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankRstPositionWrapper.java
  30. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankRstPostWrapper.java
  31. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankSystemTableWrapper.java

+ 3 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankController.java

@@ -130,14 +130,14 @@ public class RankController {
     }
 
     /**
-     * 根据所有序列
+     * 根据所有一级序列
      * @return
      */
-    @ApiLog("查询序列")
+    @ApiLog("查询一级序列")
     @GetMapping("queryAllSequence")
     public ResponseEntity queryAllFirm() {
         List<RankSequenceDTO> rankSequenceDTOS = new ArrayList<>();
-        List<RankSequence> list = rankSequenceService.list();
+        List<RankSequence> list = rankSequenceService.list(new QueryWrapper<RankSequence>().eq("parent_id","0"));
         list.stream().forEach(item->{
             RankSequenceDTO rankSequenceDTO = RankSequenceWrapper.INSTANCE.toDTO (item);
             rankSequenceDTOS.add(rankSequenceDTO);

+ 5 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankSequenceController.java

@@ -20,8 +20,10 @@ import com.jeeplus.test.rank.domain.RankSequence;
 import com.jeeplus.test.rank.service.RankRsOfficeService;
 import com.jeeplus.test.rank.service.RankSequenceService;
 import com.jeeplus.test.rank.service.dto.RankSequenceDTO;
+import com.jeeplus.test.rank.service.dto.RsSaveDTO;
 import com.jeeplus.test.rank.service.mapstruct.RankSequenceWrapper;
 import io.swagger.annotations.Api;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -109,14 +111,14 @@ public class RankSequenceController {
 
     /**
      * 添加序列
-     * @param rankSequenceDTOList
+     * @param rsSaveDTO
      * @return
      */
     @ApiLog(value = "修改/新增序列", type = LogTypeEnum.SAVE)
     @PreAuthorize("hasAnyAuthority('rank:rank_sequence:save','rank:rank_sequence:edit')")
     @PostMapping("save")
-    public ResponseEntity save(@Valid @RequestBody List<RankSequenceDTO> rankSequenceDTOList, HttpServletRequest request) {
-        return rankSequenceService.saveRankSequence(rankSequenceDTOList);
+    public ResponseEntity save(@RequestBody RsSaveDTO rsSaveDTO) {
+        return rankSequenceService.saveRankSequence(rsSaveDTO);
     }
 
     /**

+ 154 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/controller/RankSystemTableController.java

@@ -0,0 +1,154 @@
+package com.jeeplus.test.rank.controller;
+
+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.domain.Post;
+import com.jeeplus.sys.service.PostService;
+import com.jeeplus.sys.service.dto.PostDTO;
+import com.jeeplus.sys.service.mapstruct.PostWrapper;
+import com.jeeplus.test.jobPosion.domain.Position;
+import com.jeeplus.test.jobPosion.service.PositionService;
+import com.jeeplus.test.jobPosion.service.dto.PositionDTO;
+import com.jeeplus.test.jobPosion.service.mapstruct.PositionWrapper;
+import com.jeeplus.test.rank.domain.RankLevel;
+import com.jeeplus.test.rank.domain.RankSequence;
+import com.jeeplus.test.rank.domain.RankSystemTable;
+import com.jeeplus.test.rank.service.RankLevelService;
+import com.jeeplus.test.rank.service.RankSystemTableService;
+import com.jeeplus.test.rank.service.dto.RankDTO;
+import com.jeeplus.test.rank.service.dto.RankLevelDTO;
+import com.jeeplus.test.rank.service.dto.RankSequenceDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
+import com.jeeplus.test.rank.service.mapstruct.RankLevelWrapper;
+import com.jeeplus.test.rank.service.mapstruct.RankSequenceWrapper;
+import com.jeeplus.test.rank.service.mapstruct.RankSystemTableWrapper;
+import io.swagger.annotations.Api;
+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 javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+
+@Api("职级体系-体系表管理")
+@RestController
+@RequestMapping(value = "/rank/rank_system_table")
+public class RankSystemTableController {
+
+    @Autowired
+    private RankSystemTableService rankSystemTableService;
+
+    @Autowired
+    private RankLevelService rankLevelService;
+
+    @Autowired
+    private PositionService positionService;
+
+    @Autowired
+    private PostService postService;
+
+    /**
+     * 查询职层列表
+     * @param rankSystemTableDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询列表")
+    @PreAuthorize("hasAuthority('rank:rank_system_table:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<RankSystemTableDTO>> data(RankSystemTableDTO rankSystemTableDTO, Page<RankSystemTableDTO> page) throws Exception {
+        RankSystemTable rankSystemTable = RankSystemTableWrapper.INSTANCE.toEntity(rankSystemTableDTO);
+        QueryWrapper<RankSystemTable> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( rankSystemTable, RankSystemTable.class );
+        IPage<RankSystemTableDTO> result = this.rankSystemTableService.findList (page,queryWrapper);
+        return ResponseEntity.ok (result);
+    }
+
+
+
+    /**
+     * 添加职层
+     * @param rankSystemTableDTO
+     * @return
+     */
+    @ApiLog(value = "修改/新增体系表", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('rank:rank_system_table:save','rank:rank_system_table:edit')")
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody RankSystemTableDTO rankSystemTableDTO, HttpServletRequest request) {
+        this.rankSystemTableService.saveDate(rankSystemTableDTO);
+        return ResponseEntity.ok ("保存体系表成功");
+    }
+
+    /**
+     * 查询体系表数据
+     * @return
+     */
+    @ApiLog("查询体系表数据")
+    @PreAuthorize ("hasAnyAuthority('rank:rank_system_table:view','rank:rank_system_table:add','rank:rank_system_table:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("rankId") String rankId,@RequestParam("rcId") String rcId,@RequestParam("rsId") String rsId) {
+        RankSystemTableDTO rankSystemTableDTO = rankSystemTableService.queryById ( rankId,rcId,rsId );
+        return ResponseEntity.ok (rankSystemTableDTO);
+    }
+
+    /**
+     * 查询所有职层
+     * @return
+     */
+    @ApiLog("查询所有职层")
+    @GetMapping("queryAllRankLevel")
+    public ResponseEntity queryAllRankLevel() {
+        List<RankLevelDTO> rankLevelDTOList = new ArrayList<>();
+        List<RankLevel> list = rankLevelService.list();
+        list.stream().forEach(item->{
+            RankLevelDTO rankLevelDTO = RankLevelWrapper.INSTANCE.toDTO (item);
+            rankLevelDTOList.add(rankLevelDTO);
+        });
+        return ResponseEntity.ok (rankLevelDTOList);
+    }
+
+
+    /**
+     * 查询所有职务
+     * @return
+     */
+    @ApiLog("查询所有职务")
+    @GetMapping("queryAllPosition")
+    public ResponseEntity queryAllPosition() {
+        List<PositionDTO> positionDTOList = new ArrayList<>();
+        List<Position> list = positionService.list();
+        list.stream().forEach(item->{
+            PositionDTO positionDTO = PositionWrapper.INSTANCE.toDTO (item);
+            positionDTOList.add(positionDTO);
+        });
+        return ResponseEntity.ok (positionDTOList);
+    }
+
+
+    /**
+     * 查询所有岗位
+     * @return
+     */
+    @ApiLog("查询所有岗位")
+    @GetMapping("queryAllPost")
+    public ResponseEntity queryAllPost() {
+        List<PostDTO> postDTOList = new ArrayList<>();
+        List<Post> list = postService.list();
+        list.stream().forEach(item->{
+            PostDTO postDTO = PostWrapper.INSTANCE.toDTO (item);
+            postDTOList.add(postDTO);
+        });
+        return ResponseEntity.ok (postDTOList);
+    }
+
+
+
+}

+ 51 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstLevel.java

@@ -0,0 +1,51 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_rst_level
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("rank_rst_level")
+public class RankRstLevel extends BaseEntity {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 职层id
+     */
+    private String levelId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 50 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstPosition.java

@@ -0,0 +1,50 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_rst_position
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("rank_rst_position")
+public class RankRstPosition extends BaseEntity {
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 职务id
+     */
+    private String positionId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 51 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstPost.java

@@ -0,0 +1,51 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_rst_post
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("rank_rst_post")
+public class RankRstPost extends BaseEntity {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 岗位id
+     */
+    private String postId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 41 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankRstRl.java

@@ -0,0 +1,41 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_rst_rl
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("rank_rst_rl")
+public class RankRstRl extends BaseEntity {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 职层id
+     */
+    private String rankLevelId;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/domain/RankSystemTable.java

@@ -0,0 +1,46 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_system_table
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("rank_system_table")
+public class RankSystemTable extends BaseEntity {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 职级id
+     */
+    private String rankId;
+
+    /**
+     * 是否启用
+     */
+    private String useFlag;
+
+    /**
+     * 职层id
+     */
+    private String levelId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstLevelMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.test.rank.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.rank.domain.RankRstLevel;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RankRstLevelMapper extends BaseMapper<RankRstLevel> {
+}

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstPositionMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.test.rank.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.rank.domain.RankRstPosition;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface RankRstPositionMapper extends BaseMapper<RankRstPosition> {
+}

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstPostMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.test.rank.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.rank.domain.RankRstPost;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RankRstPostMapper extends BaseMapper<RankRstPost> {
+}

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankRstRlMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.test.rank.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.rank.domain.RankRstRl;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RankRstRlMapper extends BaseMapper<RankRstRl> {
+}

+ 26 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/RankSystemTableMapper.java

@@ -0,0 +1,26 @@
+package com.jeeplus.test.rank.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.rank.domain.Rank;
+import com.jeeplus.test.rank.domain.RankSystemTable;
+import com.jeeplus.test.rank.service.dto.RankDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface RankSystemTableMapper extends BaseMapper<RankSystemTable> {
+
+    public IPage<RankSystemTableDTO> findListP(Page<RankSystemTableDTO> page, @Param(Constants.WRAPPER) QueryWrapper<RankSystemTable> queryWrapper);
+
+    public IPage<RankSystemTableDTO> findListC(Page<RankSystemTableDTO> page, @Param(Constants.WRAPPER) QueryWrapper<RankSystemTable> queryWrapper);
+
+    public RankSystemTableDTO queryByIdP(@Param("rankId") String rankId,@Param("rcId") String rcId,@Param("rsId") String rsId);
+
+    public RankSystemTableDTO queryByIdC(@Param("rankId") String rankId,@Param("rcId") String rcId,@Param("rsId") String rsId);
+}

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankMapper.xml

@@ -46,7 +46,7 @@
         rs.id,
         rs.name
     from rank_r_rs rrr
-    left join rank_sequence rs on rs.id = rrr.rs_id and rs.del_flag = '0'
+    inner join rank_sequence rs on rs.id = rrr.rs_id and rs.del_flag = '0'
     where rrr.rank_id = #{id} and rrr.del_flag = '0'
   </select>
 

+ 23 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstLevelMapper.xml

@@ -0,0 +1,23 @@
+<?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.rank.mapper.RankRstLevelMapper">
+  <resultMap id="BaseResultMap" type="com.jeeplus.test.rank.service.dto.RankRstLevelDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rst_id" jdbcType="VARCHAR" property="rstId" />
+    <result column="level_id" jdbcType="VARCHAR" property="levelId" />
+    <result column="rs_id" jdbcType="VARCHAR" property="rsId" />
+    <result column="rc_id" jdbcType="VARCHAR" property="rcId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, create_by, create_date, update_by, update_date, del_flag, sort, remarks, rst_id, 
+    level_id, rs_id, rc_id
+  </sql>
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstPositionMapper.xml

@@ -0,0 +1,21 @@
+<?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.rank.mapper.RankRstPositionMapper">
+  <resultMap id="BaseResultMap" type="com.jeeplus.test.rank.service.dto.RankRstPositionDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rst_id" jdbcType="VARCHAR" property="rstId" />
+    <result column="position_id" jdbcType="VARCHAR" property="positionId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, create_by, create_date, update_by, update_date, del_flag, sort, remarks, rst_id, 
+    position_id
+  </sql>
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstPostMapper.xml

@@ -0,0 +1,21 @@
+<?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.rank.mapper.RankRstPostMapper">
+  <resultMap id="BaseResultMap" type="com.jeeplus.test.rank.service.dto.RankRstPostDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rst_id" jdbcType="VARCHAR" property="rstId" />
+    <result column="post_id" jdbcType="VARCHAR" property="postId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, create_by, create_date, update_by, update_date, del_flag, sort, remarks, rst_id, 
+    post_id
+  </sql>
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankRstRlMapper.xml

@@ -0,0 +1,21 @@
+<?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.rank.mapper.RankRstRlMapper">
+  <resultMap id="BaseResultMap" type="com.jeeplus.test.rank.service.dto.RankRstRlDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rank_level_id" jdbcType="VARCHAR" property="rankLevelId" />
+    <result column="rst_id" jdbcType="VARCHAR" property="rstId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, create_by, create_date, update_by, update_date, del_flag, sort, remarks, rank_level_id, 
+    rst_id
+  </sql>
+
+</mapper>

+ 202 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/mapper/xml/RankSystemTableMapper.xml

@@ -0,0 +1,202 @@
+<?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.rank.mapper.RankSystemTableMapper">
+  <resultMap id="BaseResultMap" type="com.jeeplus.test.rank.service.dto.RankSystemTableDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rank_id" jdbcType="VARCHAR" property="rankId" />
+    <result column="use_flag" jdbcType="VARCHAR" property="useFlag" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    rst.id,
+    rst.create_by,
+    rst.create_date,
+    rst.update_by,
+    rst.update_date,
+    rst.del_flag,
+    rst.sort,
+    rst.remarks,
+    rst.rank_id,
+    rst.use_flag,
+    rst.level_id
+  </sql>
+
+  <resultMap id="listMap" type="com.jeeplus.test.rank.service.dto.RankSystemTableDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rank_id" jdbcType="VARCHAR" property="rankId" />
+    <result column="use_flag" jdbcType="VARCHAR" property="useFlag" />
+    <result column="rc_name" jdbcType="VARCHAR" property="rankName" />
+    <result column="rs_p_name" jdbcType="VARCHAR" property="sequenceName" />
+    <result column="rs_c_name" jdbcType="VARCHAR" property="sequenceChildName" />
+    <result column="level_id" jdbcType="VARCHAR" property="levelId" />
+    <result column="rl_name" jdbcType="VARCHAR" property="levelName" />
+    <result column="rc_id" jdbcType="VARCHAR" property="rcId" />
+    <result column="rsc_id" jdbcType="VARCHAR" property="rsId" />
+    <association property="rankRstLevelDTO" javaType="com.jeeplus.test.rank.service.dto.RankLevelDTO" select="getLevelDTO" column="{id = id,rcId = rc_id,rsId = rsc_id}"></association>
+    <collection property="rankRstPositionDTOList" ofType="com.jeeplus.test.rank.service.dto.RankRstPositionDTO" select="getPositionList" column="{id = id,rcId = rc_id,rsId = rsc_id}"></collection>
+    <collection property="rankRstPostDTOList" ofType="com.jeeplus.test.rank.service.dto.RankRstPostDTO" select="getPostList" column="{id = id,rcId = rc_id,rsId = rsc_id}"></collection>
+  </resultMap>
+
+  <resultMap id="listMapP" type="com.jeeplus.test.rank.service.dto.RankSystemTableDTO">
+    <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="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="sort" jdbcType="INTEGER" property="sort" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="rank_id" jdbcType="VARCHAR" property="rankId" />
+    <result column="use_flag" jdbcType="VARCHAR" property="useFlag" />
+    <result column="rc_name" jdbcType="VARCHAR" property="rankName" />
+    <result column="rs_p_name" jdbcType="VARCHAR" property="sequenceName" />
+    <result column="level_id" jdbcType="VARCHAR" property="levelId" />
+    <result column="rl_name" jdbcType="VARCHAR" property="levelName" />
+    <result column="rc_id" jdbcType="VARCHAR" property="rcId" />
+    <result column="rsp_id" jdbcType="VARCHAR" property="rsId" />
+    <association property="rankRstLevelDTO" javaType="com.jeeplus.test.rank.service.dto.RankLevelDTO" select="getLevelDTO" column="{id = id,rcId = rc_id,rsId = rsp_id}"></association>
+    <collection property="rankRstPositionDTOList" ofType="com.jeeplus.test.jobPosion.service.dto.PositionDTO" select="getPositionList" column="{id = id,rcId = rc_id,rsId = rsp_id}"></collection>
+    <collection property="rankRstPostDTOList" ofType="com.jeeplus.sys.service.dto.PostDTO" select="getPostList" column="{id = id,rcId = rc_id,rsId = rsp_id}"></collection>
+  </resultMap>
+
+  <select id="getLevelDTO" resultType="com.jeeplus.test.rank.service.dto.RankLevelDTO">
+    select
+        rl.id,
+        rl.name
+    from rank_rst_level rrl
+    inner join rank_level rl on rl.id = rrl.level_id and rl.del_flag = '0'
+    where rrl.rst_id = #{id} and rrl.rc_id = #{rcId} and rrl.rs_id = #{rsId} and rrl.del_flag = '0'
+  </select>
+
+  <select id="getPositionList" resultType="com.jeeplus.test.jobPosion.service.dto.PositionDTO">
+    select
+        p.id,
+        p.name
+    from rank_rst_position rrp
+    inner join `position` p on p.id = rrp.position_id and p.del_flag = '0'
+    where rrp.rst_id = #{id} and rrp.rc_id = #{rcId} and rrp.rs_id = #{rsId} and rrp.del_flag = '0'
+  </select>
+
+  <select id="getPostList" resultType="com.jeeplus.sys.service.dto.PostDTO">
+    select
+        sp.id,
+        sp.name
+    from rank_rst_post rrpo
+    inner join sys_post sp on sp.id =  rrpo.post_id and sp.del_flag = '0'
+    where rrpo.rst_id = #{id} and rrpo.rc_id = #{rcId} and rrpo.rs_id = #{rsId} and rrpo.del_flag = '0'
+  </select>
+
+  <select id="findListC" resultMap="listMap">
+    select
+    <include refid="Base_Column_List"></include>,
+    rc.name rc_name,       -- 职级
+    rs_p.name rs_p_name,     -- 序列
+    rs_c.name rs_c_name,    -- 子序列
+    rc.id rc_id,      -- 职级id
+    rs_c.id rsc_id      -- 序列id
+    from rank_system_table rst
+    inner join rank r on r.id = rst.rank_id and r.del_flag = '0'
+    inner join
+    (select
+    rc.id,
+    rc.name,
+    rc.rank_id
+    from rank r
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    where r.del_flag = '0' and rc.rank_parent != '0'
+    union
+    select
+    rc.id,
+    rc.name,
+    rc.rank_id
+    from rank r
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    where r.del_flag = '0'
+    and rc.rank_parent = '0'
+    and rc.id not in(select rank_parent from rank_children where del_flag = '0' and rank_parent != '0')
+    ) rc on rc.rank_id = r.id
+    inner join rank_r_rs rrr on rrr.rank_id = r.id and rrr.del_flag='0'
+    inner join rank_sequence rs_p on rs_p.id = rrr.rs_id and rs_p.del_flag = '0'
+    inner join rank_sequence rs_c on rs_c.parent_id = rs_p.id and rs_c.del_flag = '0'
+    ${ew.customSqlSegment}
+  </select>
+
+  <select id="findListP" resultMap="listMapP">
+    select
+    <include refid="Base_Column_List"></include>,
+    rc.name rc_name,       -- 职级
+    rs_p.name rs_p_name,     -- 序列
+    rc.id rc_id,      -- 职级id
+    rs_p.id rsp_id      -- 序列id
+    from rank_system_table rst
+    inner join rank r on r.id = rst.rank_id and r.del_flag = '0'
+    inner join
+    (select
+    rc.id,
+    rc.name,
+    rc.rank_id
+    from rank r
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    where r.del_flag = '0' and rc.rank_parent != '0'
+    union
+    select
+    rc.id,
+    rc.name,
+    rc.rank_id
+    from rank r
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    where r.del_flag = '0'
+    and rc.rank_parent = '0'
+    and rc.id not in(select rank_parent from rank_children where del_flag = '0' and rank_parent != '0')
+    ) rc on rc.rank_id = r.id
+    inner join rank_r_rs rrr on rrr.rank_id = r.id and rrr.del_flag='0'
+    inner join rank_sequence rs_p on rs_p.id = rrr.rs_id and rs_p.del_flag = '0'
+    ${ew.customSqlSegment}
+  </select>
+
+  <select id="queryByIdC" resultMap="listMap">
+    select
+    <include refid="Base_Column_List"></include>,
+    rc.name rc_name,       -- 职级
+    rs_p.name rs_p_name,     -- 序列
+    rs_c.name rs_c_name,    -- 子序列
+    rc.id rc_id,
+    rs_c.id rsc_id
+    from rank_system_table rst
+    inner join rank r on r.id = rst.rank_id and r.del_flag = '0'
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    inner join rank_r_rs rrr on rrr.rank_id = r.id and rrr.del_flag='0'
+    inner join rank_sequence rs_p on rs_p.id = rrr.rs_id and rs_p.del_flag = '0'
+    inner join rank_sequence rs_c on rs_c.parent_id = rs_p.id and rs_c.del_flag = '0'
+    where rst.rank_id = #{rankId} and rc.id = #{rcId} and rs_c.id = #{rsId}
+  </select>
+
+  <select id="queryByIdP" resultMap="listMapP">
+    select
+    <include refid="Base_Column_List"></include>,
+    rc.name rc_name,       -- 职级
+    rs_p.name rs_p_name,     -- 序列
+    rc.id rc_id,
+    rs_p.id rsp_id
+    from rank_system_table rst
+    inner join rank r on r.id = rst.rank_id and r.del_flag = '0'
+    inner join rank_children rc on rc.rank_id = r.id and rc.del_flag = '0'
+    inner join rank_r_rs rrr on rrr.rank_id = r.id and rrr.del_flag='0'
+    inner join rank_sequence rs_p on rs_p.id = rrr.rs_id and rs_p.del_flag = '0'
+    where rst.rank_id = #{rankId} and rc.id = #{rcId} and rs_p.id = #{rsId}
+  </select>
+
+</mapper>

+ 27 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankSequenceService.java

@@ -4,18 +4,23 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
 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.LambdaQueryWrapper;
 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.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.rank.domain.RankRsOffice;
+import com.jeeplus.test.rank.domain.RankRstPosition;
 import com.jeeplus.test.rank.domain.RankSequence;
-import com.jeeplus.test.rank.mapper.RankRsOfficeMapper;
-import com.jeeplus.test.rank.mapper.RankSequenceMapper;
+import com.jeeplus.test.rank.domain.RankSystemTable;
+import com.jeeplus.test.rank.mapper.*;
 import com.jeeplus.test.rank.service.dto.RankSequenceDTO;
+import com.jeeplus.test.rank.service.dto.RsSaveDTO;
 import com.jeeplus.test.rank.service.mapstruct.RankSequenceWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureOrder;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -36,7 +41,26 @@ public class RankSequenceService extends ServiceImpl<RankSequenceMapper,RankSequ
     @Autowired
     private RankRsOfficeMapper rankRsOfficeMapper;
 
-    public ResponseEntity saveRankSequence(List<RankSequenceDTO> rankSequenceDTOList){
+    @Autowired
+    private RankRstPositionMapper rankRstPositionMapper;
+
+    @Autowired
+    private RankRstPostMapper rankRstPostMapper;
+
+    @Autowired
+    private RankSystemTableService rankSystemTableService;
+
+    @Autowired
+    private RankRstLevelMapper rankRstLevelMapper;
+
+    public ResponseEntity saveRankSequence(RsSaveDTO rsSaveDTO){
+        List<RankSequenceDTO> rankSequenceDTOList = rsSaveDTO.getRankSequenceDTOList();
+        Boolean change = rsSaveDTO.getChange();
+        if(change == true){
+            rankRstPositionMapper.delete(new QueryWrapper<>());
+            rankRstPostMapper.delete(new QueryWrapper<>());
+            rankRstLevelMapper.delete(new QueryWrapper<>());
+        }
         HashMap<String,Object> hashMap = new HashMap<>();
         AtomicReference<Integer> listSize = new AtomicReference<>(rankSequenceDTOList.size());
         List<String> ids = new ArrayList<>();

+ 25 - 40
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankService.java

@@ -13,6 +13,7 @@ import com.jeeplus.test.rank.mapper.RankChildrenMapper;
 import com.jeeplus.test.rank.mapper.RankMapper;
 import com.jeeplus.test.rank.mapper.RankRRsMapper;
 import com.jeeplus.test.rank.service.dto.RankDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
 import com.jeeplus.test.rank.service.mapstruct.RankChildrenWrapper;
 import com.jeeplus.test.rank.service.mapstruct.RankWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +39,9 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
     @Autowired
     private RankChildrenMapper rankChildrenMapper;
 
+    @Autowired
+    private RankSystemTableService rankSystemTableService;
+
     public IPage<RankDTO> findList(Page<RankDTO> page, QueryWrapper<Rank> queryWrapper){
         queryWrapper.eq("r.del_flag","0");
         return rankMapper.findList(page,queryWrapper);
@@ -50,6 +54,14 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
     public ResponseEntity saveRank(RankDTO rankDTO){
         Rank rank = RankWrapper.INSTANCE.toEntity(rankDTO);
         if(ObjectUtil.isNotEmpty(rank)){
+            if(StrUtil.isNotEmpty(rank.getId())){
+                if("2".equals(rank.getUseFlag())){
+                    List<RankSystemTable> rank_id = rankSystemTableService.list(new QueryWrapper<RankSystemTable>().eq("rank_id", rank.getId()));
+                    if(CollectionUtil.isNotEmpty(rank_id)){
+                        return ResponseEntity.badRequest().body("职级已被体系表引用,不可以修改状态为“禁用”");
+                    }
+                }
+            }
             if(StrUtil.isNotEmpty(rank.getId())&&StrUtil.isNotEmpty(rank.getGroupName())){
                 List<Rank> rank1 = rankMapper.selectList(new QueryWrapper<Rank>().ne("id", rank.getId()).eq("group_name", rank.getGroupName()));
                 if(CollectionUtil.isNotEmpty(rank1)){
@@ -63,32 +75,24 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
                     return ResponseEntity.badRequest().body("分组名称已存在");
                 }
             }
+        }else{
+            return ResponseEntity.badRequest().body("要保存的数据不正确");
         }
         this.saveOrUpdate(rank);
+        if(StrUtil.isNotEmpty(rank.getUseFlag())){
+            if("1".equals(rank.getUseFlag())){
+                List<RankSystemTable> rank_id = rankSystemTableService.list(new QueryWrapper<RankSystemTable>().eq("rank_id", rank.getId()));
+                if(CollectionUtil.isEmpty(rank_id)){
+                    RankSystemTableDTO rankSystemTableDTO = new RankSystemTableDTO();
+                    rankSystemTableDTO.setRankId(rank.getId());
+                    rankSystemTableDTO.setUseFlag("1");
+                    rankSystemTableService.saveDate(rankSystemTableDTO);
+                }
+            }
+        }
         if(ObjectUtil.isNotEmpty(rankDTO)){
             if(StrUtil.isNotEmpty(rankDTO.getId())){
                 rankChildrenMapper.delete(new QueryWrapper<RankChildren>().eq("rank_id",rankDTO.getId()));
-//                List<String> rankChildrenIdList = rankChildrenMapper.selectList(new QueryWrapper<RankChildren>().eq("rank_id", rankDTO.getId())).stream().map(RankChildren::getId).collect(Collectors.toList());
-                /*List<String> childIdList = new ArrayList<>();
-                if(CollectionUtil.isNotEmpty(rankDTO.getRankList())){
-                    rankDTO.getRankList().stream().forEach(item->{
-                        if(StrUtil.isNotEmpty(item.getId())){
-                            childIdList.add(item.getId());
-                            if(CollectionUtil.isNotEmpty(item.getRankListChildren())){
-                                item.getRankListChildren().stream().forEach(item2->{
-                                    if(StrUtil.isNotEmpty(item2.getId())){
-                                        childIdList.add(item2.getId());
-                                    }
-                                });
-                            }
-                        }
-                    });
-                }
-                if(CollectionUtil.isNotEmpty(childIdList)){
-                    rankChildrenMapper.delete(new QueryWrapper<RankChildren>().notIn("id",childIdList).eq("rank_id",rankDTO.getId()));
-                }else{
-                    rankChildrenMapper.delete(new QueryWrapper<RankChildren>().eq("rank_id",rankDTO.getId()));
-                }*/
                 rankRRsMapper.delete(new QueryWrapper<RankRRs>().eq("rank_id",rankDTO.getId()));
                 if(CollectionUtil.isNotEmpty(rankDTO.getSequenceIdList())){
                     rankRRsMapper.insertListById(rankDTO.getId(),rankDTO, UserUtils.getCurrentUserDTO().getId());
@@ -129,25 +133,6 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
                     if(ObjectUtil.isNotEmpty(item)){
                         RankChildren rankChildren = new RankChildren();
                         rankChildren.setName(item.getName());
-                        /*if(StrUtil.isNotEmpty(rankChildren.getId())){
-                            rankChildrenMapper.update(rankChildren,new QueryWrapper<RankChildren>().eq("id",rankChildren.getId()));
-                            if(CollectionUtil.isNotEmpty(item.getRankListChildren())){
-                                item.getRankListChildren().stream().forEach(item2->{
-                                    RankChildren rankChildren2 = RankChildrenWrapper.INSTANCE.toEntity(item2);
-                                    if(ObjectUtil.isNotEmpty(rankChildren2)){
-                                        if(StrUtil.isNotEmpty(rankChildren2.getId())){
-                                            rankChildrenMapper.update(rankChildren2,new QueryWrapper<RankChildren>().eq("id",rankChildren2.getId()));
-                                        }else{
-                                            rankChildren2.setRankLevel("2");
-                                            rankChildren2.setRankId(rank.getId());
-                                            rankChildren2.setRankParent(rankChildren.getId());
-                                            rankChildrenMapper.insert(rankChildren2);
-                                        }
-                                    }
-
-                                });
-                            }
-                        }else{*/
                             rankChildren.setRankLevel("1");
                             rankChildren.setRankId(rank.getId());
                             rankChildren.setRankParent("0");

+ 123 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/RankSystemTableService.java

@@ -0,0 +1,123 @@
+package com.jeeplus.test.rank.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.sys.service.dto.PostDTO;
+import com.jeeplus.test.jobPosion.service.dto.PositionDTO;
+import com.jeeplus.test.rank.domain.*;
+import com.jeeplus.test.rank.mapper.*;
+import com.jeeplus.test.rank.service.dto.RankDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
+import com.jeeplus.test.rank.service.mapstruct.RankRstPositionWrapper;
+import com.jeeplus.test.rank.service.mapstruct.RankSystemTableWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional
+public class RankSystemTableService extends ServiceImpl<RankSystemTableMapper, RankSystemTable> {
+
+    @Autowired
+    private RankSystemTableMapper rankSystemTableMapper;
+
+    @Autowired
+    private RankRstPositionMapper rankRstPositionMapper;
+
+    @Autowired
+    private RankRstPostMapper rankRstPostMapper;
+
+    @Autowired
+    private RankSequenceService rankSequenceService;
+
+    @Autowired
+    private RankRstLevelMapper rankRstLevelMapper;
+
+    public IPage<RankSystemTableDTO> findList(Page<RankSystemTableDTO> page, QueryWrapper<RankSystemTable> queryWrapper){
+
+        List<RankSequence> list = rankSequenceService.list(new QueryWrapper<RankSequence>().eq("del_flag", "0").ne("parent_id", "0"));
+        if(CollectionUtil.isNotEmpty(list)){
+            queryWrapper.eq("rst.del_flag","0").orderByAsc("rs_c.name").orderByAsc("r.group_name");
+            return rankSystemTableMapper.findListC(page,queryWrapper);
+        }else{
+            queryWrapper.eq("rst.del_flag","0").orderByAsc("r.group_name");
+            return rankSystemTableMapper.findListP(page,queryWrapper);
+        }
+
+
+    }
+
+    public void saveDate(RankSystemTableDTO rankSystemTableDTO){
+        RankSystemTable rankSystemTable = RankSystemTableWrapper.INSTANCE.toEntity(rankSystemTableDTO);
+        this.saveOrUpdate(rankSystemTable);
+        rankRstPositionMapper.delete(new QueryWrapper<RankRstPosition>().eq("rst_id",rankSystemTable.getId()).eq("rc_id",rankSystemTableDTO.getRcId()).eq("rs_id",rankSystemTableDTO.getRsId()));
+        rankRstPostMapper.delete(new QueryWrapper<RankRstPost>().eq("rst_id",rankSystemTable.getId()).eq("rc_id",rankSystemTableDTO.getRcId()).eq("rs_id",rankSystemTableDTO.getRsId()));
+        rankRstLevelMapper.delete(new QueryWrapper<RankRstLevel>().eq("rst_id",rankSystemTable.getId()).eq("rc_id",rankSystemTableDTO.getRcId()).eq("rs_id",rankSystemTableDTO.getRsId()));
+
+        if(ObjectUtil.isNotEmpty(rankSystemTableDTO.getRankRstLevelDTO())){
+            if(StrUtil.isNotEmpty(rankSystemTableDTO.getRankRstLevelDTO().getId())){
+                RankRstLevel rankRstLevel = new RankRstLevel();
+                rankRstLevel.setLevelId(rankSystemTableDTO.getRankRstLevelDTO().getId());
+                rankRstLevel.setRstId(rankSystemTable.getId());
+                rankRstLevel.setRcId(rankSystemTableDTO.getRcId());
+                rankRstLevel.setRsId(rankSystemTableDTO.getRsId());
+                rankRstLevelMapper.insert(rankRstLevel);
+            }
+        }
+
+
+        if(CollectionUtil.isNotEmpty(rankSystemTableDTO.getRankRstPositionDTOIdList())){
+            rankSystemTableDTO.getRankRstPositionDTOIdList().stream().forEach(item->{
+                RankRstPosition rankRstPosition = new RankRstPosition();
+                rankRstPosition.setPositionId(item);
+                rankRstPosition.setRstId(rankSystemTable.getId());
+                rankRstPosition.setRcId(rankSystemTableDTO.getRcId());
+                rankRstPosition.setRsId(rankSystemTableDTO.getRsId());
+                rankRstPositionMapper.insert(rankRstPosition);
+            });
+        }
+
+        if(CollectionUtil.isNotEmpty(rankSystemTableDTO.getRankRstPostDTOIdList())){
+            rankSystemTableDTO.getRankRstPostDTOIdList().stream().forEach(item->{
+                RankRstPost rankRstPost = new RankRstPost();
+                rankRstPost.setPostId(item);
+                rankRstPost.setRstId(rankSystemTable.getId());
+                rankRstPost.setRcId(rankSystemTableDTO.getRcId());
+                rankRstPost.setRsId(rankSystemTableDTO.getRsId());
+                rankRstPostMapper.insert(rankRstPost);
+            });
+        }
+    }
+
+    public RankSystemTableDTO queryById(String rankId,String rcId,String rsId){
+        if(StrUtil.isEmpty(rankId) || StrUtil.isEmpty(rcId) || StrUtil.isEmpty(rsId)){
+            return null;
+        }
+        List<RankSequence> rankSequenceList = rankSequenceService.list(new QueryWrapper<RankSequence>().eq("id", rsId).eq("parent_id","0"));
+        if(CollectionUtil.isNotEmpty(rankSequenceList)){
+            RankSystemTableDTO rankSystemTableDTO = rankSystemTableMapper.queryByIdP(rankId, rcId, rsId);
+            List<String> positionIds = rankSystemTableDTO.getRankRstPositionDTOList().stream().map(PositionDTO::getId).collect(Collectors.toList());
+            List<String> postIds = rankSystemTableDTO.getRankRstPostDTOList().stream().map(PostDTO::getId).collect(Collectors.toList());
+            rankSystemTableDTO.setRankRstPositionDTOIdList(positionIds);
+            rankSystemTableDTO.setRankRstPostDTOIdList(postIds);
+            return rankSystemTableDTO;
+        }else{
+            RankSystemTableDTO rankSystemTableDTO = rankSystemTableMapper.queryByIdC(rankId,rcId,rsId);
+            List<String> positionIds = rankSystemTableDTO.getRankRstPositionDTOList().stream().map(PositionDTO::getId).collect(Collectors.toList());
+            List<String> postIds = rankSystemTableDTO.getRankRstPostDTOList().stream().map(PostDTO::getId).collect(Collectors.toList());
+            rankSystemTableDTO.setRankRstPositionDTOIdList(positionIds);
+            rankSystemTableDTO.setRankRstPostDTOIdList(postIds);
+            return rankSystemTableDTO;
+        }
+
+    }
+}

+ 48 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstLevelDTO.java

@@ -0,0 +1,48 @@
+package com.jeeplus.test.rank.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;
+
+/**
+ * rank_rst_level
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RankRstLevelDTO extends BaseDTO {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 职层id
+     */
+    private String levelId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 50 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstPositionDTO.java

@@ -0,0 +1,50 @@
+package com.jeeplus.test.rank.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;
+
+import java.util.Date;
+
+/**
+ * rank_rst_position
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RankRstPositionDTO extends BaseDTO {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 职务id
+     */
+    private String positionId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 50 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstPostDTO.java

@@ -0,0 +1,50 @@
+package com.jeeplus.test.rank.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;
+
+import java.util.Date;
+
+/**
+ * rank_rst_post
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RankRstPostDTO extends BaseDTO {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    /**
+     * 岗位id
+     */
+    private String postId;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankRstRlDTO.java

@@ -0,0 +1,40 @@
+package com.jeeplus.test.rank.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;
+
+import java.util.Date;
+
+/**
+ * rank_rst_rl
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RankRstRlDTO extends BaseDTO {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 职层id
+     */
+    private String rankLevelId;
+
+    /**
+     * 体系表id
+     */
+    private String rstId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 104 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RankSystemTableDTO.java

@@ -0,0 +1,104 @@
+package com.jeeplus.test.rank.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.sys.service.dto.PostDTO;
+import com.jeeplus.test.jobPosion.service.dto.PositionDTO;
+import com.jeeplus.test.rank.domain.RankRstPosition;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * rank_system_table
+ * @author 
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RankSystemTableDTO extends BaseDTO {
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 职级id
+     */
+    private String rankId;
+
+    /**
+     * 是否启用
+     */
+    private String useFlag;
+
+    /**
+     * 职级
+     */
+    private String rankName;
+
+    /**
+     * 序列
+     */
+    private String sequenceName;
+
+    /**
+     * 子序列
+     */
+    private String sequenceChildName;
+
+    /**
+     * 职层id
+     */
+    private String levelId;
+
+    /**
+     * 职层
+     */
+    private String levelName;
+
+    /**
+     * 职级id
+     */
+    private String rcId;
+
+    /**
+     * 序列id
+     */
+    private String rsId;
+
+    /**
+     * 适用职务
+     */
+    private List<PositionDTO> rankRstPositionDTOList;
+
+    /**
+     * 适用岗位
+     */
+    private List<PostDTO> rankRstPostDTOList;
+
+    /**
+     * 适用职务ids
+     */
+    private List<String> rankRstPositionDTOIdList;
+
+    /**
+     * 适用岗位ids
+     */
+    private List<String> rankRstPostDTOIdList;
+
+    /**
+     * 职层
+     */
+    private RankLevelDTO rankRstLevelDTO;
+
+    private static final long serialVersionUID = 1L;
+}

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/dto/RsSaveDTO.java

@@ -0,0 +1,13 @@
+package com.jeeplus.test.rank.service.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RsSaveDTO {
+
+    private List<RankSequenceDTO> rankSequenceDTOList;
+
+    private Boolean change;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankRstPositionWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.rank.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.rank.domain.RankRstPosition;
+import com.jeeplus.test.rank.domain.RankSystemTable;
+import com.jeeplus.test.rank.service.dto.RankRstPositionDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RankRstPositionWrapper extends EntityWrapper<RankRstPositionDTO, RankRstPosition> {
+
+    RankRstPositionWrapper INSTANCE = Mappers.getMapper(RankRstPositionWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankRstPostWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.rank.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.rank.domain.RankRstPosition;
+import com.jeeplus.test.rank.domain.RankRstPost;
+import com.jeeplus.test.rank.service.dto.RankRstPositionDTO;
+import com.jeeplus.test.rank.service.dto.RankRstPostDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RankRstPostWrapper extends EntityWrapper<RankRstPostDTO, RankRstPost> {
+
+    RankRstPostWrapper INSTANCE = Mappers.getMapper(RankRstPostWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/rank/service/mapstruct/RankSystemTableWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.rank.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.rank.domain.RankChildren;
+import com.jeeplus.test.rank.domain.RankSystemTable;
+import com.jeeplus.test.rank.service.dto.RankChildrenDTO;
+import com.jeeplus.test.rank.service.dto.RankSystemTableDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface RankSystemTableWrapper extends EntityWrapper<RankSystemTableDTO, RankSystemTable> {
+
+    RankSystemTableWrapper INSTANCE = Mappers.getMapper(RankSystemTableWrapper.class);
+
+}