|
@@ -9,19 +9,21 @@ 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.*;
|
|
|
-import com.jeeplus.test.rank.mapper.RankLevelMapper;
|
|
|
+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.RankSequenceDTO;
|
|
|
-import com.jeeplus.test.rank.service.mapstruct.RankSequenceWrapper;
|
|
|
+import com.jeeplus.test.rank.service.mapstruct.RankChildrenWrapper;
|
|
|
import com.jeeplus.test.rank.service.mapstruct.RankWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.atomic.AtomicReference;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
@@ -33,6 +35,9 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
|
|
|
@Autowired
|
|
|
private RankRRsMapper rankRRsMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RankChildrenMapper rankChildrenMapper;
|
|
|
+
|
|
|
public IPage<RankDTO> findList(Page<RankDTO> page, QueryWrapper<Rank> queryWrapper){
|
|
|
queryWrapper.eq("r.del_flag","0");
|
|
|
return rankMapper.findList(page,queryWrapper);
|
|
@@ -42,19 +47,127 @@ public class RankService extends ServiceImpl<RankMapper, Rank> {
|
|
|
return rankMapper.getById(id);
|
|
|
}
|
|
|
|
|
|
- public void saveRank(RankDTO rankDTO){
|
|
|
+ public ResponseEntity saveRank(RankDTO rankDTO){
|
|
|
Rank rank = RankWrapper.INSTANCE.toEntity(rankDTO);
|
|
|
+ if(ObjectUtil.isNotEmpty(rank)){
|
|
|
+ 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)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return ResponseEntity.badRequest().body("分组名称已存在");
|
|
|
+ }
|
|
|
+ }else if(StrUtil.isEmpty(rank.getId())&&StrUtil.isNotEmpty(rank.getGroupName())){
|
|
|
+ List<Rank> rank2 = rankMapper.selectList(new QueryWrapper<Rank>().eq("group_name", rank.getGroupName()));
|
|
|
+ if(CollectionUtil.isNotEmpty(rank2)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return ResponseEntity.badRequest().body("分组名称已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
this.saveOrUpdate(rank);
|
|
|
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());
|
|
|
}
|
|
|
- }{
|
|
|
+ }else{
|
|
|
rankRRsMapper.insertListById(rank.getId(),rankDTO, UserUtils.getCurrentUserDTO().getId());
|
|
|
}
|
|
|
+
|
|
|
+ if(CollectionUtil.isNotEmpty(rankDTO.getRankList())){
|
|
|
+ HashMap<String,Object> rankList = new HashMap<>();
|
|
|
+ AtomicReference<String> err = new AtomicReference<>("");
|
|
|
+ rankDTO.getRankList().stream().forEach(item->{
|
|
|
+ rankList.put(item.getName(),null);
|
|
|
+ if(CollectionUtil.isNotEmpty(item.getRankListChildren())){
|
|
|
+ HashMap<String,Object> childrenList = new HashMap<>();
|
|
|
+ item.getRankListChildren().stream().forEach(item2->{
|
|
|
+ childrenList.put(item2.getName(),null);
|
|
|
+ });
|
|
|
+ if(childrenList.size() != item.getRankListChildren().size()){
|
|
|
+ err.set("职级“"+item.getName()+"”下有子职级重复");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(StrUtil.isNotEmpty(err.get())){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return ResponseEntity.badRequest().body(err.get());
|
|
|
+ }
|
|
|
+ if(rankList.size() != rankDTO.getRankList().size()){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return ResponseEntity.badRequest().body("含有重复职级");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(CollectionUtil.isNotEmpty(rankDTO.getRankList())){
|
|
|
+ rankDTO.getRankList().stream().forEach(item->{
|
|
|
+ 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");
|
|
|
+ rankChildrenMapper.insert(rankChildren);
|
|
|
+ if(CollectionUtil.isNotEmpty(item.getRankListChildren())){
|
|
|
+ item.getRankListChildren().stream().forEach(item2->{
|
|
|
+ RankChildren rankChildren2 = new RankChildren();
|
|
|
+ rankChildren2.setName(item2.getName());
|
|
|
+ rankChildren2.setRankLevel("2");
|
|
|
+ rankChildren2.setRankId(rank.getId());
|
|
|
+ rankChildren2.setRankParent(rankChildren.getId());
|
|
|
+ rankChildrenMapper.insert(rankChildren2);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*}*/
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+ return ResponseEntity.ok("保存职级成功");
|
|
|
}
|
|
|
|
|
|
public void updateUseFlagById(List<String> ids, String useFlag){
|