|
|
@@ -1,7 +1,9 @@
|
|
|
package org.dromara.system.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 岗位信息 服务层处理
|
|
|
@@ -239,10 +242,29 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
|
|
*/
|
|
|
@Override
|
|
|
public int insertPost(SysPostBo bo) {
|
|
|
+ List<Object> objs = baseMapper.selectObjs(
|
|
|
+ new LambdaQueryWrapper<SysPost>().select(SysPost::getPostCode));
|
|
|
+ List<String> postCodes = objs.stream().map(Convert::toStr).collect(Collectors.toList());
|
|
|
+ String postCode = generatePostCode(postCodes);
|
|
|
+ bo.setPostCode(postCode);
|
|
|
SysPost post = MapstructUtils.convert(bo, SysPost.class);
|
|
|
return baseMapper.insert(post);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成岗位编码(8位字母数字组合)
|
|
|
+ *
|
|
|
+ * @param postCodes 已有岗位编码列表
|
|
|
+ * @return 岗位编码
|
|
|
+ */
|
|
|
+ private String generatePostCode(List<String> postCodes) {
|
|
|
+ String code = RandomUtil.randomString(8);
|
|
|
+ if (postCodes.contains(code)) {
|
|
|
+ return generatePostCode(postCodes);
|
|
|
+ }
|
|
|
+ return code;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 修改保存岗位信息
|
|
|
*
|
|
|
@@ -252,6 +274,7 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
|
|
@Override
|
|
|
public int updatePost(SysPostBo bo) {
|
|
|
SysPost post = MapstructUtils.convert(bo, SysPost.class);
|
|
|
+ post.setPostCode(null);
|
|
|
return baseMapper.updateById(post);
|
|
|
}
|
|
|
|