From 2e524b26f4a7e9f75f2b29ae2edbcf932ee5f645 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期四, 28 一月 2021 01:33:41 +0800
Subject: [PATCH] feat(人力资源微服务,通用工具包): 不良记录管理接口完善
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBadRecordController.java | 35 ++-
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBadRecordService.java | 10
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/SequenceUtil.java | 196 ++++++++++++++++++++++++
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java | 60 +++++++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBadRecordServiceImpl.java | 115 +++++++++-----
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBadRecord.java | 2
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBadRecordMapper.java | 33 ++-
febs-common/febs-common-datasource-starter/src/main/java/cc/mrbird/febs/common/datasource/starter/configure/FebsDataSourceAutoConfigure.java | 14 +
8 files changed, 394 insertions(+), 71 deletions(-)
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java
new file mode 100644
index 0000000..aec6c5d
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java
@@ -0,0 +1,60 @@
+package cc.mrbird.febs.common.core.constant;
+
+/**
+ * name: ModuleCode
+ * package: cc.mrbird.febs.common.core.constant
+ * description: 系统模块码定义
+ * date: 2021-01-27 08:55
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class ModuleCode {
+ /**
+ * 系统框架-系统管理
+ */
+ public final static int FRAM_SYSTEM=1;
+ /**
+ * 系统框架-组织架构
+ */
+ public final static int FRAM_ORGANIC=2;
+ /**
+ * 系统框架-运营管理
+ */
+ public final static int FRAM_OPERATIONS=3;
+
+ /**
+ * 人力资源-组织规划
+ */
+ public final static int HR_ORGANIZATION=10;
+ /**
+ * 人力资源-招聘管理
+ */
+ public final static int HR_RECRUIT=11;
+ /**
+ * 人力资源-员工关系
+ */
+ public final static int HR_EMPLOYEE=12;
+ /**
+ * 人力资源-考勤管理
+ */
+ public final static int HR_ATTEND=13;
+ /**
+ * 人力资源-薪酬管理
+ */
+ public final static int HR_SALARY=14;
+ /**
+ * 人力资源-社保福利
+ */
+ public final static int HR_SOCIAL=15;
+ /**
+ * 人力资源-绩效管理
+ */
+ public final static int HR_PERFORMANCE=16;
+ /**
+ * 人力资源-培训开发
+ */
+ public final static int HR_TRAIN=17;
+
+}
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/SequenceUtil.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/SequenceUtil.java
new file mode 100644
index 0000000..7e067b1
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/SequenceUtil.java
@@ -0,0 +1,196 @@
+package cc.mrbird.febs.common.core.utils;
+
+import com.baomidou.mybatisplus.core.toolkit.SystemClock;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * name: SequenceUtil
+ * package: cc.mrbird.febs.common.core.utils
+ * description: 全局ID生成器,基于雪花算法
+ * 时间戳+机器码+系统码+序列号
+ * 时间戳:从2020-01-01开始的秒数 32位
+ * 机器码:5位 可有32台机器
+ * 系统码:6位 可设置64个系统
+ * 系统框架
+ * 系统管理 000000 1
+ * 组织架构 000001 2
+ * 运营管理000010 3
+ * Hr系统
+ * 组织规划 001010 10
+ * 招聘选拔 001011 11
+ * 员工关系 001100 12
+ * 考勤管理 001101 13
+ * 薪酬管理 001110 14
+ * 社保福利 001111 15
+ * 绩效管理 010000 16
+ * 培训开发 010001 17
+ * 序列号:10位,每秒1024个ID
+ * date: 2021-01-27 20:39
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@Slf4j
+public class SequenceUtil {
+ /**
+ * 初始偏移时间戳
+ */
+ private static final long OFFSET = 1546300800L;
+
+ /**
+ * 机器id
+ */
+ private static long WORKER_ID;
+ /**
+ * 系统模块码
+ */
+ private static long MODULE_CODE;
+ /**
+ * 机器id所占位数 (5bit, 支持最大机器数 2^5 = 32)
+ */
+ private static final long WORKER_ID_BITS = 5L;
+ /**
+ * 系统模块码所占位数 (6bit, 支持最大机器数 2^6 = 64)
+ */
+ private static final long MODULE_CODE_BITS = 6L;
+ /**
+ * 自增序列所占位数 (10bit, 支持最大每秒生成 2^10 = 1024)
+ */
+ private static final long SEQUENCE_ID_BITS = 10L;
+ /**
+ * 系统模块码偏移位数
+ */
+ private static final long MODULE_SHIFT_BITS = SEQUENCE_ID_BITS;
+ /**
+ * 机器id偏移位数
+ */
+ private static final long WORKER_SHIFT_BITS = SEQUENCE_ID_BITS + MODULE_CODE_BITS;
+ /**
+ * 自增序列偏移位数
+ */
+ private static final long OFFSET_SHIFT_BITS = SEQUENCE_ID_BITS + MODULE_CODE_BITS + WORKER_ID_BITS;
+ /**
+ * 机器标识最大值 (2^5 / 2 - 1 = 15)
+ */
+ private static final long WORKER_ID_MAX = ((1 << WORKER_ID_BITS) - 1) >> 1;
+ /**
+ * 备份机器ID开始位置 (2^5 / 2 = 16)
+ */
+ private static final long BACK_WORKER_ID_BEGIN = (1 << WORKER_ID_BITS) >> 1;
+
+ /**
+ * 系统模块码最大值 (2^6 - 1 = 63)
+ */
+ private static final long MODULE_CODE_MAX = (1 << MODULE_CODE_BITS) - 1;
+ /**
+ * 自增序列最大值 (2^15 - 1 = 1023)
+ */
+ private static final long SEQUENCE_MAX = (1 << SEQUENCE_ID_BITS) - 1;
+ /**
+ * 发生时间回拨时容忍的最大回拨时间 (秒)
+ */
+ private static final long BACK_TIME_MAX = 1L;
+
+ /**
+ * 上次生成ID的时间戳 (秒)
+ */
+ private static long lastTimestamp = 0L;
+ /**
+ * 当前秒内序列 (2^16)
+ */
+ private static long sequence = 0L;
+ /**
+ * 备份机器上次生成ID的时间戳 (秒)
+ */
+ private static long lastTimestampBak = 0L;
+ /**
+ * 备份机器当前秒内序列 (2^16)
+ */
+ private static long sequenceBak = 0L;
+
+ /**
+ * 私有构造函数禁止外部访问
+ */
+ private SequenceUtil() {
+ }
+
+ /**
+ * 获取自增序列
+ *
+ * @return long
+ */
+ public static long generateId(long workerId, long moduleCode) {
+ WORKER_ID = workerId;
+ MODULE_CODE = moduleCode;
+ if (WORKER_ID > WORKER_ID_MAX || WORKER_ID < 0) {
+ throw new IllegalArgumentException(String.format("机器数量范围: 0 ~ %d 目前: %d", WORKER_ID_MAX, workerId));
+ }
+ if (MODULE_CODE > MODULE_CODE_MAX || MODULE_CODE < 0) {
+ throw new IllegalArgumentException(String.format("模块数量范围: 0 ~ %d 目前: %d", MODULE_CODE_MAX, moduleCode));
+ }
+ return nextId(SystemClock.now() / 1000);
+ }
+
+ /**
+ * 主机器自增序列
+ *
+ * @param timestamp 当前Unix时间戳
+ * @return long
+ */
+ private static synchronized long nextId(long timestamp) {
+ // 时钟回拨检查
+ if (timestamp < lastTimestamp) {
+ // 发生时钟回拨
+ log.warn("时钟回拨, 启用备份机器ID: now: [{}] last: [{}]", timestamp, lastTimestamp);
+ return nextIdBackup(timestamp);
+ }
+
+ // 开始下一秒
+ if (timestamp != lastTimestamp) {
+ lastTimestamp = timestamp;
+ sequence = 0L;
+ }
+ if (0L == (++sequence & SEQUENCE_MAX)) {
+ sequence--;
+ return nextIdBackup(timestamp);
+ }
+
+ return ((timestamp - OFFSET) << OFFSET_SHIFT_BITS)
+ | (WORKER_ID << WORKER_SHIFT_BITS)
+ | (MODULE_CODE << MODULE_SHIFT_BITS)
+ | sequence;
+ }
+
+ /**
+ * 备份机器自增序列
+ *
+ * @param timestamp timestamp 当前Unix时间戳
+ * @return long
+ */
+ private static long nextIdBackup(long timestamp) {
+ int toSecond = 1000;
+ if (timestamp < lastTimestampBak) {
+ if (lastTimestampBak - SystemClock.now() / toSecond <= BACK_TIME_MAX) {
+ timestamp = lastTimestampBak;
+ } else {
+ throw new RuntimeException(String.format("时钟回拨: now: [%d] last: [%d]", timestamp, lastTimestampBak));
+ }
+ }
+
+ if (timestamp != lastTimestampBak) {
+ lastTimestampBak = timestamp;
+ sequenceBak = 0L;
+ }
+
+ if (0L == (++sequenceBak & SEQUENCE_MAX)) {
+ return nextIdBackup(timestamp + 1);
+ }
+
+ return ((timestamp - OFFSET) << OFFSET_SHIFT_BITS)
+ | (WORKER_ID << WORKER_SHIFT_BITS)
+ | (MODULE_CODE << MODULE_SHIFT_BITS)
+ | sequence;
+ }
+
+}
diff --git a/febs-common/febs-common-datasource-starter/src/main/java/cc/mrbird/febs/common/datasource/starter/configure/FebsDataSourceAutoConfigure.java b/febs-common/febs-common-datasource-starter/src/main/java/cc/mrbird/febs/common/datasource/starter/configure/FebsDataSourceAutoConfigure.java
index 7d2913b..25e3d62 100644
--- a/febs-common/febs-common-datasource-starter/src/main/java/cc/mrbird/febs/common/datasource/starter/configure/FebsDataSourceAutoConfigure.java
+++ b/febs-common/febs-common-datasource-starter/src/main/java/cc/mrbird/febs/common/datasource/starter/configure/FebsDataSourceAutoConfigure.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.datasource.starter.inteceptor.DataPermissionInterceptor;
import com.baomidou.mybatisplus.core.parser.ISqlParser;
import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
+import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -38,4 +39,17 @@
paginationInterceptor.setSqlParserList(sqlParserList);
return paginationInterceptor;
}
+ /**
+ *
+ * 注册乐观锁插件
+ *
+ * date 2021-01-26 08:49
+ * @author: luoyibo
+ * @return com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor
+ */
+ @Bean
+ @Order(-3)
+ public OptimisticLockerInterceptor optimisticLockerInterceptor(){
+ return new OptimisticLockerInterceptor();
+ }
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBadRecordController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBadRecordController.java
index 35b7af3..ee47f87 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBadRecordController.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBadRecordController.java
@@ -1,5 +1,7 @@
package cc.mrbird.febs.server.hr.controller;
+import cc.mrbird.febs.common.core.constant.ModuleCode;
+import cc.mrbird.febs.common.core.utils.SequenceUtil;
import cc.mrbird.febs.server.hr.entity.EmpBadRecord;
import cc.mrbird.febs.server.hr.service.IEmpBadRecordService;
import cc.mrbird.febs.common.core.entity.FebsResponse;
@@ -31,26 +33,30 @@
@RequiredArgsConstructor
public class EmpBadRecordController {
- private final IEmpBadRecordService empBadrecordService;
+ private final IEmpBadRecordService empBadRecordService;
+ @GetMapping("sequence")
+ public long getSequence(){
+ return SequenceUtil.generateId(0L,ModuleCode.HR_EMPLOYEE);
+ }
@GetMapping
@PreAuthorize("hasAuthority('empBadrecord:list')")
- public FebsResponse getAllEmpBadrecords(EmpBadRecord empBadrecord) {
- return new FebsResponse().data(empBadrecordService.findEmpBadrecords(empBadrecord));
+ public FebsResponse getAllEmpBadRecords(EmpBadRecord empBadrecord) {
+ return new FebsResponse().data(empBadRecordService.findEmpBadRecords(empBadrecord));
}
@GetMapping("list")
@PreAuthorize("hasAuthority('empBadrecord:list')")
- public FebsResponse empBadrecordList(QueryRequest request, EmpBadRecord empBadrecord) {
- Map<String, Object> dataTable = FebsUtil.getDataTable(this.empBadrecordService.findEmpBadrecords(request, empBadrecord));
+ public FebsResponse empBadRecordList(QueryRequest request, EmpBadRecord empBadrecord) {
+ Map<String, Object> dataTable = FebsUtil.getDataTable(this.empBadRecordService.findEmpBadRecords(request, empBadrecord));
return new FebsResponse().data(dataTable);
}
@PostMapping
@PreAuthorize("hasAuthority('empBadrecord:add')")
- public void addEmpBadrecord(@Valid EmpBadRecord empBadrecord) throws FebsException {
+ public void addEmpBadRecord(@Valid EmpBadRecord empBadrecord) throws FebsException {
try {
- this.empBadrecordService.createEmpBadrecord(empBadrecord);
+ this.empBadRecordService.createEmpBadRecord(empBadrecord);
} catch (Exception e) {
String message = "新增EmpBadrecord失败";
log.error(message, e);
@@ -58,25 +64,24 @@
}
}
- @DeleteMapping
+ @DeleteMapping("{ids}")
@PreAuthorize("hasAuthority('empBadrecord:delete')")
- public void deleteEmpBadrecord(EmpBadRecord empBadrecord) throws FebsException {
+ public void logicDeleteEmpBadRecord(@PathVariable("ids") String ids) throws FebsException {
try {
- this.empBadrecordService.deleteEmpBadRecord(empBadrecord);
+ this.empBadRecordService.logicDelEmpBadRecord(ids);
} catch (Exception e) {
- String message = "删除EmpBadrecord失败";
+ String message = "逻辑删除员工不良记录失败";
log.error(message, e);
throw new FebsException(message);
}
}
-
@PutMapping
@PreAuthorize("hasAuthority('empBadrecord:update')")
- public void updateEmpBadrecord(EmpBadRecord empBadrecord) throws FebsException {
+ public void updateEmpBadRecord(EmpBadRecord empBadrecord) throws FebsException {
try {
- this.empBadrecordService.updateEmpBadrecord(empBadrecord);
+ this.empBadRecordService.updateEmpBadRecord(empBadrecord);
} catch (Exception e) {
- String message = "修改EmpBadrecord失败";
+ String message = "修改员工不良记录失败";
log.error(message, e);
throw new FebsException(message);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBadRecord.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBadRecord.java
index b0f5bde..df25705 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBadRecord.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBadRecord.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
@@ -97,6 +98,7 @@
/**
* 记录版本号,用来进行乐观锁控制
*/
+ @Version
@TableField("version")
private Integer version;
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBadRecordMapper.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBadRecordMapper.java
index 22a2870..f027f1d 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBadRecordMapper.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBadRecordMapper.java
@@ -2,17 +2,30 @@
import cc.mrbird.febs.server.hr.entity.EmpBadRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
/**
-*
-* name:EmpBadrecord
-* package:cc.mrbird.febs.server.hr.controller
-* description:员工不良记录信息实体Mapper
-*
-* @author luoyibo
-* @date 2021-01-24 20:35:55
-* @since JDK1.8
-*/
+ * name:EmpBadrecord
+ * package:cc.mrbird.febs.server.hr.controller
+ * description:员工不良记录信息实体Mapper
+ *
+ * @author luoyibo
+ * @date 2021-01-24 20:35:55
+ * @since JDK1.8
+ */
public interface EmpBadRecordMapper extends BaseMapper<EmpBadRecord> {
-
+ @Update("<script> " +
+ " UPDATE t_emp_badrecord SET delFlag = 1,\n" +
+ " modifyTime = NOW(),\n" +
+ " modifier = #{operatorId}, \n" +
+ " version = version+1 \n" +
+ " WHERE badId IN \n" +
+ " <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
+ " #{delId}\n" +
+ " </foreach>\n" +
+ "</script>")
+ void logicDeleteByIds(@Param("list") List<String> list,@Param("operatorId") String operatorId);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBadRecordService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBadRecordService.java
index 1703592..1abb118 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBadRecordService.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBadRecordService.java
@@ -26,7 +26,7 @@
* @param empBadrecord empBadrecord
* @return IPage<EmpBadrecord>
*/
-IPage<EmpBadRecord> findEmpBadrecords(QueryRequest request, EmpBadRecord empBadrecord);
+IPage<EmpBadRecord> findEmpBadRecords(QueryRequest request, EmpBadRecord empBadrecord);
/**
* 查询(所有)
@@ -34,21 +34,21 @@
* @param empBadrecord empBadrecord
* @return List<EmpBadrecord>
*/
-List<EmpBadRecord> findEmpBadrecords(EmpBadRecord empBadrecord);
+List<EmpBadRecord> findEmpBadRecords(EmpBadRecord empBadrecord);
/**
* 新增
*
* @param empBadrecord empBadrecord
*/
-void createEmpBadrecord(EmpBadRecord empBadrecord);
+void createEmpBadRecord(EmpBadRecord empBadrecord);
/**
* 修改
*
* @param empBadrecord empBadrecord
*/
-void updateEmpBadrecord(EmpBadRecord empBadrecord);
+void updateEmpBadRecord(EmpBadRecord empBadrecord);
/**
* 删除
@@ -56,4 +56,6 @@
* @param empBadrecord empBadrecord
*/
void deleteEmpBadRecord(EmpBadRecord empBadrecord);
+
+void logicDelEmpBadRecord(String ids);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBadRecordServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBadRecordServiceImpl.java
index 56d7e7f..eb89db5 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBadRecordServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBadRecordServiceImpl.java
@@ -1,8 +1,12 @@
package cc.mrbird.febs.server.hr.service.impl;
+import cc.mrbird.febs.common.core.constant.ModuleCode;
+import cc.mrbird.febs.common.core.utils.FebsUtil;
+import cc.mrbird.febs.common.core.utils.SequenceUtil;
import cc.mrbird.febs.server.hr.entity.EmpBadRecord;
import cc.mrbird.febs.server.hr.mapper.EmpBadRecordMapper;
import cc.mrbird.febs.server.hr.service.IEmpBadRecordService;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;
@@ -13,58 +17,85 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cc.mrbird.febs.common.core.entity.QueryRequest;
-import java.util.List;
+import java.util.*;
/**
-*
-* name:EmpBadrecord
-* package:cc.mrbird.febs.server.hr.controller
-* description:员工不良记录信息服务接口实现
-*
-* @author luoyibo
-* @date 2021-01-24 20:35:55
-* @since JDK1.8
-*/
+ * name:EmpBadrecord
+ * package:cc.mrbird.febs.server.hr.controller
+ * description:员工不良记录信息服务接口实现
+ *
+ * @author luoyibo
+ * @date 2021-01-24 20:35:55
+ * @since JDK1.8
+ */
@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class EmpBadRecordServiceImpl extends ServiceImpl
-<EmpBadRecordMapper, EmpBadRecord> implements IEmpBadRecordService {
+ <EmpBadRecordMapper, EmpBadRecord> implements IEmpBadRecordService {
-private final EmpBadRecordMapper empBadrecordMapper;
+ private final EmpBadRecordMapper empBadrecordMapper;
+ private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
+ .map(u -> u.getUserId().toString())
+ .orElse("1");
-@Override
-public IPage<EmpBadRecord> findEmpBadrecords(QueryRequest request, EmpBadRecord empBadrecord) {
-LambdaQueryWrapper<EmpBadRecord> queryWrapper = new LambdaQueryWrapper<>();
-// TODO 设置查询条件
-Page<EmpBadRecord> page = new Page<>(request.getPageNum(), request.getPageSize());
-return this.page(page, queryWrapper);
-}
+ @Override
+ public IPage<EmpBadRecord> findEmpBadRecords(QueryRequest request, EmpBadRecord empBadrecord) {
+ LambdaQueryWrapper<EmpBadRecord> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(EmpBadRecord::getDelFlag, 0);
-@Override
-public List<EmpBadRecord> findEmpBadrecords(EmpBadRecord empBadrecord) {
-LambdaQueryWrapper<EmpBadRecord> queryWrapper = new LambdaQueryWrapper<>();
-// TODO 设置查询条件
-return this.baseMapper.selectList(queryWrapper);
-}
+ Page<EmpBadRecord> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return this.page(page, queryWrapper);
+ }
-@Override
-@Transactional(rollbackFor = Exception.class)
-public void createEmpBadrecord(EmpBadRecord empBadrecord) {
-this.save(empBadrecord);
-}
+ @Override
+ public List<EmpBadRecord> findEmpBadRecords(EmpBadRecord empBadrecord) {
+ LambdaQueryWrapper<EmpBadRecord> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(EmpBadRecord::getDelFlag, 0);
-@Override
-@Transactional(rollbackFor = Exception.class)
-public void updateEmpBadrecord(EmpBadRecord empBadrecord) {
-this.saveOrUpdate(empBadrecord);
-}
+ return this.baseMapper.selectList(queryWrapper);
+ }
-@Override
-@Transactional(rollbackFor = Exception.class)
-public void deleteEmpBadRecord(EmpBadRecord empBadrecord) {
-LambdaQueryWrapper<EmpBadRecord> wapper = new LambdaQueryWrapper<>();
-// TODO 设置删除条件
-this.remove(wapper);
-}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void createEmpBadRecord(EmpBadRecord empBadrecord) {
+ empBadrecord.setBadId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
+ empBadrecord.setCreator(operatorId);
+ empBadrecord.setModifier(operatorId);
+ this.save(empBadrecord);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void updateEmpBadRecord(EmpBadRecord empBadrecord) {
+ EmpBadRecord dbData = this.getById(empBadrecord.getBadId());
+ empBadrecord.setCreateTime(dbData.getCreateTime());
+ empBadrecord.setCreator(dbData.getCreator());
+ empBadrecord.setDelFlag(dbData.getDelFlag());
+ empBadrecord.setModifyTime(new Date());
+ empBadrecord.setModifier(operatorId);
+
+ this.saveOrUpdate(empBadrecord);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteEmpBadRecord(EmpBadRecord empBadrecord) {
+ UpdateWrapper<EmpBadRecord> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.set("delFlag", 1);
+ updateWrapper.set("modifyTime", new Date());
+ updateWrapper.set("modifier", operatorId);
+ updateWrapper.set("version", empBadrecord.getVersion() + 1);
+
+ updateWrapper.eq("badId", empBadrecord.getBadId());
+ this.update(updateWrapper);
+ }
+
+ @Override
+ public void logicDelEmpBadRecord(String ids) {
+ List<String> list = new ArrayList<>();
+ String[] str = ids.split(",");
+ list.addAll(Arrays.asList(str));
+ empBadrecordMapper.logicDeleteByIds(list, operatorId);
+ }
}
--
Gitblit v1.8.0