From a6c5984b2347a368e4e9ea7dbfdb95d199d6d4f4 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期二, 02 二月 2021 22:10:14 +0800
Subject: [PATCH] feat(系统和人力微服务): 数据字典和缓存
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java | 7 +
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java | 4 +
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Dept.java | 5 +
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java | 17 ++--
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java | 31 +++++++
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/DeptServiceImpl.java | 23 +++++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpRemarkInfoController.java | 2
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IDeptService.java | 4 +
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/DicCode.java | 36 +++++++++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java | 66 ++++++++++++++-
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java | 3
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/runner/StartTask.java | 6 +
12 files changed, 183 insertions(+), 21 deletions(-)
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/DicCode.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/DicCode.java
new file mode 100644
index 0000000..2620a2b
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/DicCode.java
@@ -0,0 +1,36 @@
+package cc.mrbird.febs.common.core.constant;
+
+/**
+ * name: DicItemCode
+ * package: cc.mrbird.febs.common.core.constant
+ * description: 字典码定义
+ * date: 2021-02-02 17:58
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DicCode {
+ /**
+ * 民族字典代码
+ */
+ public final static String NATION="NATION";
+ /**
+ * 政治面貌
+ */
+ public final static String PLITICAL="PLITICAL";
+ /**
+ * 婚姻状况
+ */
+ public final static String MARRIAGE = "MARRIAGE";
+
+ /**
+ * 学历(文化程度)
+ */
+ public final static String EDUCATION = "EDUCATION";
+
+ /**
+ * 籍贯
+ */
+ public final static String NATIVEPLACE = "NATIVEPLACE";
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Dept.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Dept.java
index 6c8b402..dea2a32 100644
--- a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Dept.java
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Dept.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.common.core.entity.system;
+import cc.mrbird.febs.common.core.annotation.FieldInfo;
import cc.mrbird.febs.common.core.converter.TimeConverter;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -46,6 +47,10 @@
@ExcelField(value = "修改时间", writeConverter = TimeConverter.class)
private Date modifyTime;
+ @FieldInfo(name = "delFlag", type = "bit", explain = "记录删除标志。0-未删除 1-已删除,默认0")
+ @TableField("delFlag")
+ private Integer delFlag = 0;
+
private transient String createTimeFrom;
private transient String createTimeTo;
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
index c5c8daa..87d7f13 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
@@ -17,6 +17,7 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
import java.util.Map;
/**
@@ -99,12 +100,12 @@
}
}
- @GetMapping("user/list")
- public FebsResponse getRemoteUserList(QueryRequest request, SystemUser user) {
- return remoteUserService.userList(request, user);
- }
- @GetMapping("dept/list")
- public FebsResponse getRemoteDeptList(QueryRequest request, Dept dept) {
- return remoteDeptService.deptList(request, dept);
- }
+ // @GetMapping("user/list")
+ // public FebsResponse getRemoteUserList(QueryRequest request, SystemUser user) {
+ // return remoteUserService.userList(request, user);
+ // }
+ // @GetMapping("dept/list")
+ // public List<Dept> getRemoteDeptList(Dept dept) {
+ // return remoteDeptService.selectAllDept(dept);
+ // }
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpRemarkInfoController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpRemarkInfoController.java
index 93d1cdd..7bf117f 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpRemarkInfoController.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpRemarkInfoController.java
@@ -28,7 +28,7 @@
@Slf4j
@Validated
@RestController
-@RequestMapping("empRemarkinfo")
+@RequestMapping("empRemarkInfo")
@RequiredArgsConstructor
public class EmpRemarkInfoController {
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java
index b50c2cf..f0f7f9c 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java
@@ -58,9 +58,13 @@
@TableField("empName")
private String empName = "";
- @FieldInfo(name = "sex", type = "varchar", explain = "性别码,使用国标性别性别码")
+ @FieldInfo(name = "sex", type = "varchar", explain = "性别")
@TableField("sex")
private String sex = "";
+
+ @FieldInfo(name = "sexName", type = "varchar", explain = "性别")
+ @TableField(exist = false)
+ private String sexName = "";
@FieldInfo(name = "jobId", type = "bigint", explain = "岗位Id")
@TableField("jobId")
@@ -86,6 +90,10 @@
@TableField("nation")
private String nation = "";
+ @FieldInfo(name = "nationName", type = "varchar", explain = "民族")
+ @TableField(exist = false)
+ private String nationName = "";
+
@FieldInfo(name = "certificateValidity", type = "date", explain = "证件有效期")
@TableField("certificateValidity")
@JsonSerialize(using = DateSerializer.class)
@@ -96,6 +104,10 @@
@FieldInfo(name = "marriage", type = "varchar", explain = "婚姻状况")
@TableField("marriage")
private String marriage = "";
+
+ @FieldInfo(name = "marriageName", type = "varchar", explain = "婚姻状况")
+ @TableField(exist = false)
+ private String marriageName = "";
@FieldInfo(name = "age", type = "tinyint", explain = "年龄")
@TableField("age")
@@ -116,6 +128,10 @@
@TableField("politics")
private String politics = "";
+ @FieldInfo(name = "politicsName", type = "varchar", explain = "政治面貌")
+ @TableField(exist = false)
+ private String politicsName = "";
+
@FieldInfo(name = "entryDate", type = "date", explain = "入职日期")
@TableField("entryDate")
@JsonSerialize(using = DateSerializer.class)
@@ -127,6 +143,10 @@
@TableField("education")
private String education = "";
+ @FieldInfo(name = "educationName", type = "varchar", explain = "最高学历")
+ @TableField(exist = false)
+ private String educationName = "";
+
@FieldInfo(name = "seniority", type = "tinyint", explain = "入司工龄")
@TableField("seniority")
private Integer seniority = 0;
@@ -134,6 +154,10 @@
@FieldInfo(name = "nativePlace", type = "varchar", explain = "籍贯")
@TableField("nativePlace")
private String nativePlace = "";
+
+ @FieldInfo(name = "nativePlaceName", type = "varchar", explain = "籍贯")
+ @TableField(exist = false)
+ private String nativePlaceName = "";
@FieldInfo(name = "censusAddress", type = "varchar", explain = "户籍地址")
@TableField("censusAddress")
@@ -199,6 +223,11 @@
@TableField("certificateList")
private String certificateList = "";
+ @FieldInfo(name = "certificateListName", type = "varchar", explain = "相关证件")
+ @TableField(exist = false)
+ private String certificateListName = "";
+
+
@FieldInfo(name = "createTime", type = "datetime", explain = "记录创建时间")
@TableField("createTime")
@JsonSerialize(using = DateTimeSerializer.class)
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java
index 6e8520f..0a7e0fd 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java
@@ -11,6 +11,8 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
+import java.util.List;
+
/**
* name: IRemoteDeptService
* package: cc.mrbird.febs.server.hr.feign
@@ -23,6 +25,9 @@
*/
@FeignClient(value = FebsServerConstant.FEBS_SERVER_SYSTEM, contextId = "deptServiceClient", fallbackFactory = RemoteDeptServiceFallback.class)
public interface IRemoteDeptService {
+ // @GetMapping("dept")
+ // FebsResponse deptList(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("dept") Dept depts);
+
@GetMapping("dept")
- FebsResponse deptList(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("dept") Dept depts);
+ List<Dept> selectAllDept(Dept dept);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java
index 5c63046..257edc1 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java
@@ -21,9 +21,10 @@
public class RemoteDeptServiceFallback implements FallbackFactory<IRemoteDeptService> {
@Override
public IRemoteDeptService create(Throwable throwable) {
- return (queryRequest, dept) -> {
+ return (dept) -> {
log.error("获取部门信息失败", throwable);
return null;
};
}
+
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
index 7182efb..8df32c2 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -1,14 +1,16 @@
package cc.mrbird.febs.server.hr.service.impl;
-import cc.mrbird.febs.common.core.constant.GlobalStatic;
+import cc.mrbird.febs.common.core.constant.DicCode;
import cc.mrbird.febs.common.core.constant.ModuleCode;
import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.entity.system.Dept;
import cc.mrbird.febs.common.core.entity.system.DicItem;
import cc.mrbird.febs.common.core.utils.CastUtil;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import cc.mrbird.febs.common.core.utils.SequenceUtil;
import cc.mrbird.febs.common.redis.service.RedisService;
import cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
+import cc.mrbird.febs.server.hr.feign.IRemoteDeptService;
import cc.mrbird.febs.server.hr.mapper.EmpBaseInfoMapper;
import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -36,6 +38,7 @@
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
class EmpBaseInfoServiceImpl extends ServiceImpl<EmpBaseInfoMapper, EmpBaseInfo> implements IEmpBaseInfoService {
private final RedisService redisService;
+ private final IRemoteDeptService remoteDeptService;
private final EmpBaseInfoMapper empBaseInfoMapper;
private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
.map(u -> u.getUserId().toString())
@@ -46,18 +49,45 @@
LambdaQueryWrapper<EmpBaseInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EmpBaseInfo::getDelFlag, 0);
Page<EmpBaseInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
- IPage<EmpBaseInfo> iPage = this.page(page, queryWrapper);;
- List<EmpBaseInfo> list = iPage.getRecords();
- List<DicItem> dicItems = CastUtil.castList(redisService.get("dicItems"),DicItem.class);
+ IPage<EmpBaseInfo> iPage = this.page(page, queryWrapper);
+ ;
+ // List<EmpBaseInfo> list = iPage.getRecords();
+ //设置部门
+ List<EmpBaseInfo> list = setDeptName(iPage.getRecords());
+ List<DicItem> dicItems = CastUtil.castList(redisService.get("dicItems"), DicItem.class);
list.forEach(p -> {
+ p.setSexName("1".equals(p.getSex()) ? "男" : "女");
p.setJobName("测试岗位");
- p.setMarriage("未婚");
// 设置民族
- p.setNation(dicItems.stream()
- .filter(k -> "nation".equals(k.getDicCode()) && k.getDicItemCode().equals(p.getNation()))
+ p.setNationName(dicItems.stream()
+ .filter(k -> DicCode.NATION.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getNation()))
.findFirst()
.map(DicItem::getDicItemName)
.orElse("汉族"));
+ // 设置政治面貌
+ p.setPoliticsName(dicItems.stream()
+ .filter(k -> DicCode.PLITICAL.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getPolitics()))
+ .findFirst()
+ .map(DicItem::getDicItemName)
+ .orElse("群众"));
+ // 设置婚姻状况
+ p.setMarriageName(dicItems.stream()
+ .filter(k -> DicCode.MARRIAGE.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getMarriage()))
+ .findFirst()
+ .map(DicItem::getDicItemName)
+ .orElse("未婚"));
+ // 设置学历
+ p.setEducationName(dicItems.stream()
+ .filter(k -> DicCode.EDUCATION.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getEducation()))
+ .findFirst()
+ .map(DicItem::getDicItemName)
+ .orElse("无学历"));
+ // 设置籍贯
+ p.setNativePlaceName(dicItems.stream()
+ .filter(k -> DicCode.NATIVEPLACE.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getNativePlace()))
+ .findFirst()
+ .map(DicItem::getDicItemName)
+ .orElse("未知"));
});
iPage.setRecords(list);
return iPage;
@@ -117,4 +147,26 @@
List<String> list = new ArrayList<>(Arrays.asList(str));
empBaseInfoMapper.logicDeleteByIds(list, operatorId);
}
+
+ /**
+ * 设置员工部门名称
+ * <p>
+ * date 2021-02-02 21:43
+ *
+ * @param empBaseInfoList 人员信息列表
+ * @return java.util.List<cc.mrbird.febs.server.hr.entity.EmpBaseInfo>
+ * @author: luoyibo
+ */
+ private List<EmpBaseInfo> setDeptName(List<EmpBaseInfo> empBaseInfoList) {
+ List<Dept> depts = CastUtil.castList(redisService.get("depts"), Dept.class);
+ for (EmpBaseInfo empBaseInfo : empBaseInfoList) {
+ // 设置民族
+ empBaseInfo.setDeptName(depts.stream()
+ .filter(k -> k.getDeptId().equals(empBaseInfo.getDeptId()))
+ .findFirst()
+ .map(Dept::getDeptName)
+ .orElse(""));
+ }
+ return empBaseInfoList;
+ }
}
\ No newline at end of file
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java
index 4022870..c455af2 100644
--- a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java
@@ -31,6 +31,10 @@
private final IDeptService deptService;
+ @GetMapping("all")
+ public FebsResponse getAllEmpBaseInfos(Dept dept) {
+ return new FebsResponse().data(deptService.findAllDepts(dept));
+ }
@GetMapping
public FebsResponse deptList(QueryRequest request, Dept dept) {
Map<String, Object> depts = this.deptService.findDepts(request, dept);
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/runner/StartTask.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/runner/StartTask.java
index 0c014cc..839dd02 100644
--- a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/runner/StartTask.java
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/runner/StartTask.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.server.system.runner;
+import cc.mrbird.febs.server.system.service.IDeptService;
import cc.mrbird.febs.server.system.service.IDicItemService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
@@ -19,13 +20,16 @@
@Slf4j
public class StartTask implements CommandLineRunner {
private final IDicItemService dicItemService;
+ private final IDeptService deptService;
- public StartTask(IDicItemService dicItemService) {
+ public StartTask(IDicItemService dicItemService, IDeptService deptService) {
this.dicItemService = dicItemService;
+ this.deptService = deptService;
}
@Override
public void run(String... args) throws Exception {
dicItemService.setDicItemRedis();
+ deptService.setDeptRedis();
}
}
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IDeptService.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IDeptService.java
index cc8e267..231a2f9 100644
--- a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IDeptService.java
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IDeptService.java
@@ -51,4 +51,8 @@
* @param deptIds 部门id数组
*/
void deleteDepts(String[] deptIds);
+
+ void setDeptRedis();
+
+ List<Dept> findAllDepts(Dept dept);
}
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/DeptServiceImpl.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/DeptServiceImpl.java
index 4f863dd..9618758 100644
--- a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/DeptServiceImpl.java
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/DeptServiceImpl.java
@@ -6,8 +6,10 @@
import cc.mrbird.febs.common.core.entity.constant.FebsConstant;
import cc.mrbird.febs.common.core.entity.constant.PageConstant;
import cc.mrbird.febs.common.core.entity.system.Dept;
+import cc.mrbird.febs.common.core.entity.system.DicItem;
import cc.mrbird.febs.common.core.utils.SortUtil;
import cc.mrbird.febs.common.core.utils.TreeUtil;
+import cc.mrbird.febs.common.redis.service.RedisService;
import cc.mrbird.febs.server.system.mapper.DeptMapper;
import cc.mrbird.febs.server.system.service.IDeptService;
import cc.mrbird.febs.server.system.service.IUserDataPermissionService;
@@ -32,7 +34,7 @@
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
-
+ private final RedisService redisService;
private final IUserDataPermissionService userDataPermissionService;
@Override
@@ -96,6 +98,25 @@
this.delete(Arrays.asList(deptIds));
}
+ @Override
+ public void setDeptRedis() {
+ LambdaQueryWrapper<Dept> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Dept::getDelFlag, 0);
+ List<Dept> depts = this.baseMapper.selectList(queryWrapper);
+ redisService.del("depts");
+ redisService.set("depts", depts);
+ }
+
+ @Override
+ public List<Dept> findAllDepts(Dept dept) {
+ QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(Dept::getDelFlag,0);
+ if (StringUtils.isNotBlank(dept.getDeptName())) {
+ queryWrapper.lambda().like(Dept::getDeptName, dept.getDeptName());
+ }
+ return this.baseMapper.selectList(queryWrapper);
+ }
+
private void buildTrees(List<DeptTree> trees, List<Dept> depts) {
depts.forEach(dept -> {
DeptTree tree = new DeptTree();
--
Gitblit v1.8.0