diff --git a/klp-admin/src/main/resources/application.yml b/klp-admin/src/main/resources/application.yml
index 3c1f9bb9..80db18ba 100644
--- a/klp-admin/src/main/resources/application.yml
+++ b/klp-admin/src/main/resources/application.yml
@@ -347,3 +347,11 @@ sales:
camera:
media-server-host: http://47.117.71.33:15218 # ZLMediaKit 控制台地址
api-secret: kuQV244gFXu7fBev9UBFkm0IrslUC2A9 # 必须与ZLMediaKit的config.ini一致
+
+# 用印盖章 Python 服务占位配置(仅预留,不启用逻辑)
+stamp:
+ python-service:
+ enabled: false
+ base-url: http://python-stamp-service.example.com # 替换为实际地址
+ api-key: changeme # 替换为实际鉴权信息
+ timeout-ms: 5000 # 可按需调整
diff --git a/klp-hrm/pom.xml b/klp-hrm/pom.xml
index af3fbff6..c2cd7ae7 100644
--- a/klp-hrm/pom.xml
+++ b/klp-hrm/pom.xml
@@ -10,6 +10,10 @@
Archetype - klp-hrm
http://maven.apache.org
+
+ com.klp
+ klp-common
+
org.projectlombok
lombok
@@ -36,5 +40,15 @@
com.klp
klp-system
+
+ com.klp
+ klp-oss
+
+
+
+ org.apache.pdfbox
+ pdfbox
+ 2.0.29
+
diff --git a/klp-hrm/src/main/java/com/klp/hrm/config/StampProperties.java b/klp-hrm/src/main/java/com/klp/hrm/config/StampProperties.java
new file mode 100644
index 00000000..a799a35f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/config/StampProperties.java
@@ -0,0 +1,40 @@
+package com.klp.hrm.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * Stamp service configuration.
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "stamp")
+public class StampProperties {
+
+ private PythonService pythonService = new PythonService();
+ private JavaService javaService = new JavaService();
+
+ @Data
+ public static class PythonService {
+ /**
+ * Whether to call external python stamp service.
+ */
+ private boolean enabled = false;
+ private String baseUrl;
+ private String apiKey;
+ private Integer timeoutMs = 5000;
+ }
+
+ @Data
+ public static class JavaService {
+ /**
+ * Enable in-Java stamping.
+ */
+ private boolean enabled = true;
+ /**
+ * Default DPI for px → user-space conversion if needed.
+ */
+ private Integer dpi = 72;
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmAttendCalcController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmAttendCalcController.java
new file mode 100644
index 00000000..387763b7
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmAttendCalcController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmAttendCalcBo;
+import com.klp.hrm.domain.vo.HrmAttendCalcVo;
+import com.klp.hrm.service.IHrmAttendCalcService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 考勤结果(按用户要求本接口不做鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/attend")
+public class HrmAttendCalcController extends BaseController {
+
+ private final IHrmAttendCalcService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmAttendCalcBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{calcId}")
+ public R getInfo(@PathVariable @NotNull Long calcId) {
+ return R.ok(service.queryById(calcId));
+ }
+
+ @Log(title = "考勤结果", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmAttendCalcBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "考勤结果", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmAttendCalcBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "考勤结果", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{calcIds}")
+ public R remove(@PathVariable @NotEmpty Long[] calcIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(calcIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmAttendCalcBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmCertificateController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmCertificateController.java
new file mode 100644
index 00000000..ca4ebd73
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmCertificateController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmCertificateBo;
+import com.klp.hrm.domain.vo.HrmCertificateVo;
+import com.klp.hrm.service.IHrmCertificateService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/certificate")
+public class HrmCertificateController extends BaseController {
+
+ private final IHrmCertificateService service;
+
+ @SaCheckPermission("hrm:certificate:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmCertificateBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:certificate:query")
+ @GetMapping("/{certId}")
+ public R getInfo(@PathVariable @NotNull Long certId) {
+ return R.ok(service.queryById(certId));
+ }
+
+ @SaCheckPermission("hrm:certificate:add")
+ @Log(title = "证书", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmCertificateBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:certificate:edit")
+ @Log(title = "证书", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmCertificateBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:certificate:remove")
+ @Log(title = "证书", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{certIds}")
+ public R remove(@PathVariable @NotEmpty Long[] certIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(certIds), true));
+ }
+
+ @SaCheckPermission("hrm:certificate:list")
+ @GetMapping("/all")
+ public R> all(HrmCertificateBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmContractController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmContractController.java
new file mode 100644
index 00000000..685aca04
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmContractController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmContractBo;
+import com.klp.hrm.domain.vo.HrmContractVo;
+import com.klp.hrm.service.IHrmContractService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/contract")
+public class HrmContractController extends BaseController {
+
+ private final IHrmContractService service;
+
+ @SaCheckPermission("hrm:contract:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmContractBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:contract:query")
+ @GetMapping("/{contractId}")
+ public R getInfo(@PathVariable @NotNull Long contractId) {
+ return R.ok(service.queryById(contractId));
+ }
+
+ @SaCheckPermission("hrm:contract:add")
+ @Log(title = "劳动合同", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmContractBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:contract:edit")
+ @Log(title = "劳动合同", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmContractBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:contract:remove")
+ @Log(title = "劳动合同", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{contractIds}")
+ public R remove(@PathVariable @NotEmpty Long[] contractIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(contractIds), true));
+ }
+
+ @SaCheckPermission("hrm:contract:list")
+ @GetMapping("/all")
+ public R> all(HrmContractBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmpOrgPositionController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmpOrgPositionController.java
new file mode 100644
index 00000000..bc0adc1f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmpOrgPositionController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmEmpOrgPositionBo;
+import com.klp.hrm.domain.vo.HrmEmpOrgPositionVo;
+import com.klp.hrm.service.IHrmEmpOrgPositionService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/empOrg")
+public class HrmEmpOrgPositionController extends BaseController {
+
+ private final IHrmEmpOrgPositionService service;
+
+ @SaCheckPermission("hrm:emporg:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmEmpOrgPositionBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:emporg:query")
+ @GetMapping("/{relId}")
+ public R getInfo(@PathVariable @NotNull Long relId) {
+ return R.ok(service.queryById(relId));
+ }
+
+ @SaCheckPermission("hrm:emporg:add")
+ @Log(title = "员工组织岗位关系", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmEmpOrgPositionBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:emporg:edit")
+ @Log(title = "员工组织岗位关系", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmEmpOrgPositionBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:emporg:remove")
+ @Log(title = "员工组织岗位关系", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{relIds}")
+ public R remove(@PathVariable @NotEmpty Long[] relIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(relIds), true));
+ }
+
+ @SaCheckPermission("hrm:emporg:list")
+ @GetMapping("/all")
+ public R> all(HrmEmpOrgPositionBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmployeeController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmployeeController.java
new file mode 100644
index 00000000..5c39b5ef
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmEmployeeController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmEmployeeBo;
+import com.klp.hrm.domain.vo.HrmEmployeeVo;
+import com.klp.hrm.service.IHrmEmployeeService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/employee")
+public class HrmEmployeeController extends BaseController {
+
+ private final IHrmEmployeeService service;
+
+ @SaCheckPermission("hrm:employee:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmEmployeeBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:employee:query")
+ @GetMapping("/{empId}")
+ public R getInfo(@PathVariable @NotNull Long empId) {
+ return R.ok(service.queryById(empId));
+ }
+
+ @SaCheckPermission("hrm:employee:add")
+ @Log(title = "员工管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmEmployeeBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:employee:edit")
+ @Log(title = "员工管理", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmEmployeeBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:employee:remove")
+ @Log(title = "员工管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{empIds}")
+ public R remove(@PathVariable @NotEmpty Long[] empIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(empIds), true));
+ }
+
+ @SaCheckPermission("hrm:employee:list")
+ @GetMapping("/all")
+ public R> all(HrmEmployeeBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowActionController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowActionController.java
new file mode 100644
index 00000000..a5d95dd0
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowActionController.java
@@ -0,0 +1,39 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowActionBo;
+import com.klp.hrm.domain.vo.HrmFlowActionVo;
+import com.klp.hrm.service.IHrmFlowActionService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.constraints.NotNull;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/action")
+public class HrmFlowActionController extends BaseController {
+
+ private final IHrmFlowActionService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFlowActionBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{actionId}")
+ public R getInfo(@PathVariable @NotNull Long actionId) {
+ return R.ok(service.queryById(actionId));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowFormDataController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowFormDataController.java
new file mode 100644
index 00000000..e8ff1dbf
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowFormDataController.java
@@ -0,0 +1,39 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFormDataBo;
+import com.klp.hrm.domain.vo.HrmFormDataVo;
+import com.klp.hrm.service.IHrmFormDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.constraints.NotNull;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/form")
+public class HrmFlowFormDataController extends BaseController {
+
+ private final IHrmFormDataService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFormDataBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{formId}")
+ public R getInfo(@PathVariable @NotNull Long formId) {
+ return R.ok(service.queryById(formId));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowInstanceController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowInstanceController.java
new file mode 100644
index 00000000..830ffbd2
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowInstanceController.java
@@ -0,0 +1,76 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmFlowInstanceBo;
+import com.klp.hrm.domain.bo.HrmFlowStartBo;
+import com.klp.hrm.domain.vo.HrmFlowInstanceVo;
+import com.klp.hrm.service.IHrmFlowInstanceService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/instance")
+public class HrmFlowInstanceController extends BaseController {
+
+ private final IHrmFlowInstanceService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFlowInstanceBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{instId}")
+ public R getInfo(@PathVariable @NotNull Long instId) {
+ return R.ok(service.queryById(instId));
+ }
+
+ @SaCheckPermission("hrm:flow:add")
+ @Log(title = "流程实例", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmFlowInstanceBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程实例", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmFlowInstanceBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:remove")
+ @Log(title = "流程实例", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{instIds}")
+ public R remove(@PathVariable @NotEmpty Long[] instIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(instIds), true));
+ }
+
+ @SaCheckPermission("hrm:flow:add")
+ @Log(title = "流程实例启动", businessType = BusinessType.INSERT)
+ @PostMapping("/start")
+ public R start(@Validated @RequestBody HrmFlowStartBo bo) {
+ return R.ok(service.startInstance(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/all")
+ public R> all(HrmFlowInstanceBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowNodeController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowNodeController.java
new file mode 100644
index 00000000..a0a4d1be
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowNodeController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmFlowNodeBo;
+import com.klp.hrm.domain.vo.HrmFlowNodeVo;
+import com.klp.hrm.service.IHrmFlowNodeService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/node")
+public class HrmFlowNodeController extends BaseController {
+
+ private final IHrmFlowNodeService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFlowNodeBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{nodeId}")
+ public R getInfo(@PathVariable @NotNull Long nodeId) {
+ return R.ok(service.queryById(nodeId));
+ }
+
+ @SaCheckPermission("hrm:flow:add")
+ @Log(title = "流程节点", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmFlowNodeBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程节点", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmFlowNodeBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:remove")
+ @Log(title = "流程节点", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{nodeIds}")
+ public R remove(@PathVariable @NotEmpty Long[] nodeIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(nodeIds), true));
+ }
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/all")
+ public R> all(HrmFlowNodeBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTaskController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTaskController.java
new file mode 100644
index 00000000..cfe7df20
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTaskController.java
@@ -0,0 +1,101 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmFlowTaskBo;
+import com.klp.hrm.domain.bo.HrmSealStampBo;
+import com.klp.hrm.domain.vo.HrmFlowTaskVo;
+import com.klp.hrm.service.IHrmFlowTaskService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/task")
+public class HrmFlowTaskController extends BaseController {
+
+ private final IHrmFlowTaskService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFlowTaskBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/todo")
+ public R> todo(@RequestParam(required = false) Long assigneeUserId) {
+ HrmFlowTaskBo bo = new HrmFlowTaskBo();
+ bo.setAssigneeUserId(assigneeUserId != null ? assigneeUserId : StpUtil.getLoginIdAsLong());
+ bo.setStatus("pending");
+ return R.ok(service.queryList(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{taskId}")
+ public R getInfo(@PathVariable @NotNull Long taskId) {
+ return R.ok(service.queryById(taskId));
+ }
+
+ @SaCheckPermission("hrm:flow:add")
+ @Log(title = "流程任务", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmFlowTaskBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程任务", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmFlowTaskBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:remove")
+ @Log(title = "流程任务", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{taskIds}")
+ public R remove(@PathVariable @NotEmpty Long[] taskIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(taskIds), true));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程任务审批通过", businessType = BusinessType.UPDATE)
+ @PostMapping("/{taskId}/approve")
+ public R approve(@PathVariable @NotNull Long taskId,
+ @RequestParam(required = false) Long actionUserId,
+ @RequestParam(required = false) String remark,
+ @RequestBody(required = false) HrmSealStampBo stampBo) {
+ return toAjax(service.approve(taskId, actionUserId, remark, stampBo));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程任务审批驳回", businessType = BusinessType.UPDATE)
+ @PostMapping("/{taskId}/reject")
+ public R reject(@PathVariable @NotNull Long taskId,
+ @RequestParam(required = false) Long actionUserId,
+ @RequestParam(required = false) String remark) {
+ return toAjax(service.reject(taskId, actionUserId, remark));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程任务撤回", businessType = BusinessType.UPDATE)
+ @PostMapping("/{taskId}/withdraw")
+ public R withdraw(@PathVariable @NotNull Long taskId,
+ @RequestParam(required = false) Long actionUserId,
+ @RequestParam(required = false) String remark) {
+ return toAjax(service.withdraw(taskId, actionUserId, remark));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTemplateController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTemplateController.java
new file mode 100644
index 00000000..1a5483c8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmFlowTemplateController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmFlowTemplateBo;
+import com.klp.hrm.domain.vo.HrmFlowTemplateVo;
+import com.klp.hrm.service.IHrmFlowTemplateService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/flow/template")
+public class HrmFlowTemplateController extends BaseController {
+
+ private final IHrmFlowTemplateService service;
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmFlowTemplateBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:flow:query")
+ @GetMapping("/{tplId}")
+ public R getInfo(@PathVariable @NotNull Long tplId) {
+ return R.ok(service.queryById(tplId));
+ }
+
+ @SaCheckPermission("hrm:flow:add")
+ @Log(title = "流程模板", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmFlowTemplateBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:edit")
+ @Log(title = "流程模板", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmFlowTemplateBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:flow:remove")
+ @Log(title = "流程模板", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{tplIds}")
+ public R remove(@PathVariable @NotEmpty Long[] tplIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(tplIds), true));
+ }
+
+ @SaCheckPermission("hrm:flow:list")
+ @GetMapping("/all")
+ public R> all(HrmFlowTemplateBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmGradeController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmGradeController.java
new file mode 100644
index 00000000..01a83f71
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmGradeController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmGradeBo;
+import com.klp.hrm.domain.vo.HrmGradeVo;
+import com.klp.hrm.service.IHrmGradeService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/grade")
+public class HrmGradeController extends BaseController {
+
+ private final IHrmGradeService service;
+
+ @SaCheckPermission("hrm:grade:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmGradeBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:grade:query")
+ @GetMapping("/{gradeId}")
+ public R getInfo(@PathVariable @NotNull Long gradeId) {
+ return R.ok(service.queryById(gradeId));
+ }
+
+ @SaCheckPermission("hrm:grade:add")
+ @Log(title = "职级管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmGradeBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:grade:edit")
+ @Log(title = "职级管理", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmGradeBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:grade:remove")
+ @Log(title = "职级管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{gradeIds}")
+ public R remove(@PathVariable @NotEmpty Long[] gradeIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(gradeIds), true));
+ }
+
+ @SaCheckPermission("hrm:grade:list")
+ @GetMapping("/all")
+ public R> all(HrmGradeBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmHeadcountPlanController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmHeadcountPlanController.java
new file mode 100644
index 00000000..b98fbb21
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmHeadcountPlanController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmHeadcountPlanBo;
+import com.klp.hrm.domain.vo.HrmHeadcountPlanVo;
+import com.klp.hrm.service.IHrmHeadcountPlanService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/headcount")
+public class HrmHeadcountPlanController extends BaseController {
+
+ private final IHrmHeadcountPlanService service;
+
+ @SaCheckPermission("hrm:headcount:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmHeadcountPlanBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:headcount:query")
+ @GetMapping("/{planId}")
+ public R getInfo(@PathVariable @NotNull Long planId) {
+ return R.ok(service.queryById(planId));
+ }
+
+ @SaCheckPermission("hrm:headcount:add")
+ @Log(title = "编制管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmHeadcountPlanBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:headcount:edit")
+ @Log(title = "编制管理", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmHeadcountPlanBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:headcount:remove")
+ @Log(title = "编制管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{planIds}")
+ public R remove(@PathVariable @NotEmpty Long[] planIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(planIds), true));
+ }
+
+ @SaCheckPermission("hrm:headcount:list")
+ @GetMapping("/all")
+ public R> all(HrmHeadcountPlanBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveBalanceController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveBalanceController.java
new file mode 100644
index 00000000..f1594ed4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveBalanceController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmLeaveBalanceBo;
+import com.klp.hrm.domain.vo.HrmLeaveBalanceVo;
+import com.klp.hrm.service.IHrmLeaveBalanceService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/leave/balance")
+public class HrmLeaveBalanceController extends BaseController {
+
+ private final IHrmLeaveBalanceService service;
+
+ @SaCheckPermission("hrm:leavebal:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmLeaveBalanceBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:leavebal:query")
+ @GetMapping("/{balId}")
+ public R getInfo(@PathVariable @NotNull Long balId) {
+ return R.ok(service.queryById(balId));
+ }
+
+ @SaCheckPermission("hrm:leavebal:add")
+ @Log(title = "假期余额", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmLeaveBalanceBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:leavebal:edit")
+ @Log(title = "假期余额", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmLeaveBalanceBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:leavebal:remove")
+ @Log(title = "假期余额", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{balIds}")
+ public R remove(@PathVariable @NotEmpty Long[] balIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(balIds), true));
+ }
+
+ @SaCheckPermission("hrm:leavebal:list")
+ @GetMapping("/all")
+ public R> all(HrmLeaveBalanceBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveReqController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveReqController.java
new file mode 100644
index 00000000..f8b28204
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmLeaveReqController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmLeaveReqBo;
+import com.klp.hrm.domain.vo.HrmLeaveReqVo;
+import com.klp.hrm.service.IHrmLeaveReqService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/leave/req")
+public class HrmLeaveReqController extends BaseController {
+
+ private final IHrmLeaveReqService service;
+
+ @SaCheckPermission("hrm:leave:req:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmLeaveReqBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:leave:req:query")
+ @GetMapping("/{bizId}")
+ public R getInfo(@PathVariable @NotNull Long bizId) {
+ return R.ok(service.queryById(bizId));
+ }
+
+ @SaCheckPermission("hrm:leave:req:add")
+ @Log(title = "请假单", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmLeaveReqBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:leave:req:edit")
+ @Log(title = "请假单", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmLeaveReqBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:leave:req:remove")
+ @Log(title = "请假单", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{bizIds}")
+ public R remove(@PathVariable @NotEmpty Long[] bizIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(bizIds), true));
+ }
+
+ @SaCheckPermission("hrm:leave:req:list")
+ @GetMapping("/all")
+ public R> all(HrmLeaveReqBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOrgController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOrgController.java
new file mode 100644
index 00000000..b65143b4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOrgController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmOrgBo;
+import com.klp.hrm.domain.vo.HrmOrgVo;
+import com.klp.hrm.service.IHrmOrgService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/org")
+public class HrmOrgController extends BaseController {
+
+ private final IHrmOrgService service;
+
+ @SaCheckPermission("hrm:org:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmOrgBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:org:query")
+ @GetMapping("/{orgId}")
+ public R getInfo(@PathVariable @NotNull Long orgId) {
+ return R.ok(service.queryById(orgId));
+ }
+
+ @SaCheckPermission("hrm:org:add")
+ @Log(title = "组织管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmOrgBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:org:edit")
+ @Log(title = "组织管理", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmOrgBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:org:remove")
+ @Log(title = "组织管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{orgIds}")
+ public R remove(@PathVariable @NotEmpty Long[] orgIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(orgIds), true));
+ }
+
+ @SaCheckPermission("hrm:org:list")
+ @GetMapping("/all")
+ public R> all(HrmOrgBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOvertimeReqController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOvertimeReqController.java
new file mode 100644
index 00000000..8a8c052a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmOvertimeReqController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmOvertimeReqBo;
+import com.klp.hrm.domain.vo.HrmOvertimeReqVo;
+import com.klp.hrm.service.IHrmOvertimeReqService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 加班单(按用户要求:不做鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/overtime")
+public class HrmOvertimeReqController extends BaseController {
+
+ private final IHrmOvertimeReqService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmOvertimeReqBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{bizId}")
+ public R getInfo(@PathVariable @NotNull Long bizId) {
+ return R.ok(service.queryById(bizId));
+ }
+
+ @Log(title = "加班单", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmOvertimeReqBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "加班单", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmOvertimeReqBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "加班单", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{bizIds}")
+ public R remove(@PathVariable @NotEmpty Long[] bizIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(bizIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmOvertimeReqBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayPlanController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayPlanController.java
new file mode 100644
index 00000000..3b803b37
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayPlanController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmPayPlanBo;
+import com.klp.hrm.domain.vo.HrmPayPlanVo;
+import com.klp.hrm.service.IHrmPayPlanService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 薪酬方案(按用户要求:不做鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/pay/plan")
+public class HrmPayPlanController extends BaseController {
+
+ private final IHrmPayPlanService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmPayPlanBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{planId}")
+ public R getInfo(@PathVariable @NotNull Long planId) {
+ return R.ok(service.queryById(planId));
+ }
+
+ @Log(title = "薪酬方案", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmPayPlanBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "薪酬方案", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmPayPlanBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "薪酬方案", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{planIds}")
+ public R remove(@PathVariable @NotEmpty Long[] planIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(planIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmPayPlanBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayRunController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayRunController.java
new file mode 100644
index 00000000..b977c66b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayRunController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmPayRunBo;
+import com.klp.hrm.domain.vo.HrmPayRunVo;
+import com.klp.hrm.service.IHrmPayRunService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 薪酬批次(无鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/pay/run")
+public class HrmPayRunController extends BaseController {
+
+ private final IHrmPayRunService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmPayRunBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{runId}")
+ public R getInfo(@PathVariable @NotNull Long runId) {
+ return R.ok(service.queryById(runId));
+ }
+
+ @Log(title = "薪酬批次", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmPayRunBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "薪酬批次", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmPayRunBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "薪酬批次", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{runIds}")
+ public R remove(@PathVariable @NotEmpty Long[] runIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(runIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmPayRunBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayslipController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayslipController.java
new file mode 100644
index 00000000..80c789f9
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPayslipController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmPayslipBo;
+import com.klp.hrm.domain.vo.HrmPayslipVo;
+import com.klp.hrm.service.IHrmPayslipService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 工资条(无鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/payslip")
+public class HrmPayslipController extends BaseController {
+
+ private final IHrmPayslipService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmPayslipBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{slipId}")
+ public R getInfo(@PathVariable @NotNull Long slipId) {
+ return R.ok(service.queryById(slipId));
+ }
+
+ @Log(title = "工资条", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmPayslipBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "工资条", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmPayslipBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "工资条", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{slipIds}")
+ public R remove(@PathVariable @NotEmpty Long[] slipIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(slipIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmPayslipBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPositionController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPositionController.java
new file mode 100644
index 00000000..70054a3f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPositionController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmPositionBo;
+import com.klp.hrm.domain.vo.HrmPositionVo;
+import com.klp.hrm.service.IHrmPositionService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/position")
+public class HrmPositionController extends BaseController {
+
+ private final IHrmPositionService service;
+
+ @SaCheckPermission("hrm:position:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmPositionBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:position:query")
+ @GetMapping("/{positionId}")
+ public R getInfo(@PathVariable @NotNull Long positionId) {
+ return R.ok(service.queryById(positionId));
+ }
+
+ @SaCheckPermission("hrm:position:add")
+ @Log(title = "岗位管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmPositionBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:position:edit")
+ @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmPositionBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:position:remove")
+ @Log(title = "岗位管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{positionIds}")
+ public R remove(@PathVariable @NotEmpty Long[] positionIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(positionIds), true));
+ }
+
+ @SaCheckPermission("hrm:position:list")
+ @GetMapping("/all")
+ public R> all(HrmPositionBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPunchController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPunchController.java
new file mode 100644
index 00000000..66310b99
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmPunchController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmPunchBo;
+import com.klp.hrm.domain.vo.HrmPunchVo;
+import com.klp.hrm.service.IHrmPunchService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/punch")
+public class HrmPunchController extends BaseController {
+
+ private final IHrmPunchService service;
+
+ @SaCheckPermission("hrm:punch:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmPunchBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:punch:query")
+ @GetMapping("/{punchId}")
+ public R getInfo(@PathVariable @NotNull Long punchId) {
+ return R.ok(service.queryById(punchId));
+ }
+
+ @SaCheckPermission("hrm:punch:add")
+ @Log(title = "打卡记录", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmPunchBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:punch:edit")
+ @Log(title = "打卡记录", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmPunchBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:punch:remove")
+ @Log(title = "打卡记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{punchIds}")
+ public R remove(@PathVariable @NotEmpty Long[] punchIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(punchIds), true));
+ }
+
+ @SaCheckPermission("hrm:punch:list")
+ @GetMapping("/all")
+ public R> all(HrmPunchBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmScheduleController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmScheduleController.java
new file mode 100644
index 00000000..6c2300e2
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmScheduleController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmScheduleBo;
+import com.klp.hrm.domain.vo.HrmScheduleVo;
+import com.klp.hrm.service.IHrmScheduleService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/schedule")
+public class HrmScheduleController extends BaseController {
+
+ private final IHrmScheduleService service;
+
+ @SaCheckPermission("hrm:schedule:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmScheduleBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:schedule:query")
+ @GetMapping("/{schedId}")
+ public R getInfo(@PathVariable @NotNull Long schedId) {
+ return R.ok(service.queryById(schedId));
+ }
+
+ @SaCheckPermission("hrm:schedule:add")
+ @Log(title = "排班", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmScheduleBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:schedule:edit")
+ @Log(title = "排班", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmScheduleBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:schedule:remove")
+ @Log(title = "排班", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{schedIds}")
+ public R remove(@PathVariable @NotEmpty Long[] schedIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(schedIds), true));
+ }
+
+ @SaCheckPermission("hrm:schedule:list")
+ @GetMapping("/all")
+ public R> all(HrmScheduleBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmSealReqController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmSealReqController.java
new file mode 100644
index 00000000..62573db8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmSealReqController.java
@@ -0,0 +1,99 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmSealReqBo;
+import com.klp.hrm.domain.bo.HrmSealStampBo;
+import com.klp.hrm.domain.vo.HrmSealReqVo;
+import com.klp.hrm.service.IHrmSealReqService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 用印申请
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/seal")
+public class HrmSealReqController extends BaseController {
+
+ private final IHrmSealReqService service;
+
+ @SaCheckPermission("hrm:seal:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmSealReqBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:seal:query")
+ @GetMapping("/{bizId}")
+ public R getInfo(@PathVariable @NotNull Long bizId) {
+ return R.ok(service.queryById(bizId));
+ }
+
+ @SaCheckPermission("hrm:seal:add")
+ @Log(title = "用印申请", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmSealReqBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:seal:edit")
+ @Log(title = "用印申请", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmSealReqBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:seal:remove")
+ @Log(title = "用印申请", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{bizIds}")
+ public R remove(@PathVariable @NotEmpty Long[] bizIds) {
+ return toAjax(service.deleteWithValidByIds(java.util.Arrays.asList(bizIds), true));
+ }
+
+ @SaCheckPermission("hrm:seal:approve")
+ @Log(title = "用印申请", businessType = BusinessType.UPDATE)
+ @PostMapping("/{bizId}/approve")
+ public R approve(@PathVariable @NotNull Long bizId) {
+ return toAjax(service.updateStatus(bizId, "approved"));
+ }
+
+ @SaCheckPermission("hrm:seal:reject")
+ @Log(title = "用印申请", businessType = BusinessType.UPDATE)
+ @PostMapping("/{bizId}/reject")
+ public R reject(@PathVariable @NotNull Long bizId) {
+ return toAjax(service.updateStatus(bizId, "rejected"));
+ }
+
+ @SaCheckPermission("hrm:seal:cancel")
+ @Log(title = "用印申请", businessType = BusinessType.UPDATE)
+ @PostMapping("/{bizId}/cancel")
+ public R cancel(@PathVariable @NotNull Long bizId) {
+ return toAjax(service.updateStatus(bizId, "canceled"));
+ }
+
+ @SaCheckPermission("hrm:seal:stamp")
+ @Log(title = "用印盖章(Java)", businessType = BusinessType.UPDATE)
+ @PostMapping("/{bizId}/stamp/java")
+ public R stampJava(@PathVariable @NotNull Long bizId, @Validated @RequestBody HrmSealStampBo bo) {
+ return R.ok(service.stampWithJava(bizId, bo));
+ }
+
+ @SaCheckPermission("hrm:seal:stamp")
+ @Log(title = "用印盖章(Python)", businessType = BusinessType.UPDATE)
+ @PostMapping("/{bizId}/stamp/python")
+ public R stampPython(@PathVariable @NotNull Long bizId, @Validated @RequestBody HrmSealStampBo bo) {
+ return R.ok(service.stampWithPython(bizId, bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmShiftController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmShiftController.java
new file mode 100644
index 00000000..39820db9
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmShiftController.java
@@ -0,0 +1,68 @@
+package com.klp.hrm.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmShiftBo;
+import com.klp.hrm.domain.vo.HrmShiftVo;
+import com.klp.hrm.service.IHrmShiftService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/shift")
+public class HrmShiftController extends BaseController {
+
+ private final IHrmShiftService service;
+
+ @SaCheckPermission("hrm:shift:list")
+ @GetMapping("/list")
+ public TableDataInfo list(HrmShiftBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @SaCheckPermission("hrm:shift:query")
+ @GetMapping("/{shiftId}")
+ public R getInfo(@PathVariable @NotNull Long shiftId) {
+ return R.ok(service.queryById(shiftId));
+ }
+
+ @SaCheckPermission("hrm:shift:add")
+ @Log(title = "班次", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmShiftBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:shift:edit")
+ @Log(title = "班次", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmShiftBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @SaCheckPermission("hrm:shift:remove")
+ @Log(title = "班次", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{shiftIds}")
+ public R remove(@PathVariable @NotEmpty Long[] shiftIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(shiftIds), true));
+ }
+
+ @SaCheckPermission("hrm:shift:list")
+ @GetMapping("/all")
+ public R> all(HrmShiftBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmStatSnapshotController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmStatSnapshotController.java
new file mode 100644
index 00000000..21ff5e19
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmStatSnapshotController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmStatSnapshotBo;
+import com.klp.hrm.domain.vo.HrmStatSnapshotVo;
+import com.klp.hrm.service.IHrmStatSnapshotService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 指标快照(无鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/pay/stat")
+public class HrmStatSnapshotController extends BaseController {
+
+ private final IHrmStatSnapshotService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmStatSnapshotBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{snapId}")
+ public R getInfo(@PathVariable @NotNull Long snapId) {
+ return R.ok(service.queryById(snapId));
+ }
+
+ @Log(title = "指标快照", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmStatSnapshotBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "指标快照", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmStatSnapshotBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "指标快照", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{snapIds}")
+ public R remove(@PathVariable @NotEmpty Long[] snapIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(snapIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmStatSnapshotBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/controller/HrmTravelReqController.java b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmTravelReqController.java
new file mode 100644
index 00000000..a5f76855
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/controller/HrmTravelReqController.java
@@ -0,0 +1,64 @@
+package com.klp.hrm.controller;
+
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.enums.BusinessType;
+import com.klp.hrm.domain.bo.HrmTravelReqBo;
+import com.klp.hrm.domain.vo.HrmTravelReqVo;
+import com.klp.hrm.service.IHrmTravelReqService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 出差单(按用户要求:不做鉴权)
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/hrm/travel")
+public class HrmTravelReqController extends BaseController {
+
+ private final IHrmTravelReqService service;
+
+ @GetMapping("/list")
+ public TableDataInfo list(HrmTravelReqBo bo, PageQuery pageQuery) {
+ return service.queryPageList(bo, pageQuery);
+ }
+
+ @GetMapping("/{bizId}")
+ public R getInfo(@PathVariable @NotNull Long bizId) {
+ return R.ok(service.queryById(bizId));
+ }
+
+ @Log(title = "出差单", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated @RequestBody HrmTravelReqBo bo) {
+ return toAjax(service.insertByBo(bo));
+ }
+
+ @Log(title = "出差单", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated @RequestBody HrmTravelReqBo bo) {
+ return toAjax(service.updateByBo(bo));
+ }
+
+ @Log(title = "出差单", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{bizIds}")
+ public R remove(@PathVariable @NotEmpty Long[] bizIds) {
+ return toAjax(service.deleteWithValidByIds(Arrays.asList(bizIds), true));
+ }
+
+ @GetMapping("/all")
+ public R> all(HrmTravelReqBo bo) {
+ return R.ok(service.queryList(bo));
+ }
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmAttendCalc.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmAttendCalc.java
new file mode 100644
index 00000000..376dca60
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmAttendCalc.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_attend_calc")
+public class HrmAttendCalc extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long calcId;
+ private Long empId;
+ private Date workDate;
+ private Long shiftId;
+ private String status;
+ private Integer workMinutes;
+ private Integer lateMinutes;
+ private Integer earlyMinutes;
+ private Integer otMinutes;
+ private String leaveMinutesJson;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java
new file mode 100644
index 00000000..a1c3ee1b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_certificate")
+public class HrmCertificate extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long certId;
+ private Long empId;
+ private String certName;
+ private String certNo;
+ private String issuedBy;
+ private Date validFrom;
+ private Date validTo;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java
new file mode 100644
index 00000000..6cd604a8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_contract")
+public class HrmContract extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long contractId;
+ private Long empId;
+ private String contractNo;
+ private String contractType;
+ private Date startDate;
+ private Date endDate;
+ private String status;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmpOrgPosition.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmpOrgPosition.java
new file mode 100644
index 00000000..0a07441c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmpOrgPosition.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 员工-组织-岗位关系
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_emp_org_position")
+public class HrmEmpOrgPosition extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long relId;
+ private Long empId;
+ private Long orgId;
+ private Long positionId;
+ private Integer isPrimary;
+ private Date startDate;
+ private Date endDate;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmployee.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmployee.java
new file mode 100644
index 00000000..878bb753
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmEmployee.java
@@ -0,0 +1,43 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 员工主数据
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_employee")
+public class HrmEmployee extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long empId;
+ private Long userId;
+ private String empNo;
+ private String empName;
+ private String gender;
+ private String mobile;
+ private String email;
+ private String idNo;
+ private Date hireDate;
+ private String employmentType;
+ private String status;
+ private Long gradeId;
+ private Long mainOrgId;
+ private Long mainPositionId;
+ private BigDecimal seniorityYears;
+ private Date contractEndDate;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowAction.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowAction.java
new file mode 100644
index 00000000..700cf199
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowAction.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_flow_action")
+public class HrmFlowAction extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long actionId;
+ private Long taskId;
+ private Long instId;
+ private String action;
+ private String remark;
+ private Long actionUserId;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowInstance.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowInstance.java
new file mode 100644
index 00000000..3530a4dd
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowInstance.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_flow_instance")
+public class HrmFlowInstance extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long instId;
+ private Long tplId;
+ private String bizType;
+ private Long bizId;
+ private String status;
+ private Long currentNodeId;
+ private Long startUserId;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowNode.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowNode.java
new file mode 100644
index 00000000..00366797
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowNode.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_flow_node")
+public class HrmFlowNode extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long nodeId;
+ private Long tplId;
+ private Integer orderNo;
+ private String nodeType;
+ private String approverRule;
+ private String approverValue; // JSON
+ private String fieldPerm; // JSON
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTask.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTask.java
new file mode 100644
index 00000000..f5dadaaa
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTask.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_flow_task")
+public class HrmFlowTask extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long taskId;
+ private Long instId;
+ private Long nodeId;
+ private Long assigneeUserId;
+ private String status;
+ private Date expireTime;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTemplate.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTemplate.java
new file mode 100644
index 00000000..117bd78a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFlowTemplate.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_flow_template")
+public class HrmFlowTemplate extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long tplId;
+ private String tplCode;
+ private String tplName;
+ private String bizType;
+ private Integer version;
+ private Integer enabled;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFormData.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFormData.java
new file mode 100644
index 00000000..e8c52afe
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmFormData.java
@@ -0,0 +1,26 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_form_data")
+public class HrmFormData extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long formId;
+ private String bizType;
+ private Long bizId;
+ private String contentJson;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmGrade.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmGrade.java
new file mode 100644
index 00000000..45702125
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmGrade.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 职级
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_grade")
+public class HrmGrade extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long gradeId;
+ private String gradeCode;
+ private String gradeName;
+ private Integer levelNo;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmHeadcountPlan.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmHeadcountPlan.java
new file mode 100644
index 00000000..a49d3740
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmHeadcountPlan.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 编制/预算
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_headcount_plan")
+public class HrmHeadcountPlan extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long planId;
+ private Long orgId;
+ private Long positionId;
+ private Integer year;
+ private Integer month;
+ private Integer budgetCount;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveBalance.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveBalance.java
new file mode 100644
index 00000000..42210f8f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveBalance.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_leave_balance")
+public class HrmLeaveBalance extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long balId;
+ private Long empId;
+ private String leaveType;
+ private java.math.BigDecimal balanceHours;
+ private Date expireDate;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveReq.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveReq.java
new file mode 100644
index 00000000..160c4c10
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmLeaveReq.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_leave_req")
+public class HrmLeaveReq extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long bizId;
+ private Long empId;
+ private String leaveType;
+ private Date startTime;
+ private Date endTime;
+ private java.math.BigDecimal hours;
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOrg.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOrg.java
new file mode 100644
index 00000000..d41d9917
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOrg.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 组织/部门/班组
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_org")
+public class HrmOrg extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long orgId;
+ private Long parentId;
+ private String orgCode;
+ private String orgName;
+ private String orgType;
+ private Long leaderUserId;
+ private Integer orderNum;
+ private Integer status;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOvertimeReq.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOvertimeReq.java
new file mode 100644
index 00000000..4f76082f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmOvertimeReq.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_overtime_req")
+public class HrmOvertimeReq extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long bizId;
+ private Long empId;
+ private String otType;
+ private Date startTime;
+ private Date endTime;
+ private java.math.BigDecimal hours;
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayPlan.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayPlan.java
new file mode 100644
index 00000000..e6c23c2b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayPlan.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_pay_plan")
+public class HrmPayPlan extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long planId;
+ private String planName;
+ private BigDecimal baseSalary;
+ private String allowanceJson;
+ private String formulaJson;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayRun.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayRun.java
new file mode 100644
index 00000000..b4809e58
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayRun.java
@@ -0,0 +1,26 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_pay_run")
+public class HrmPayRun extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long runId;
+ private String period;
+ private String status;
+ private Long planId;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayslip.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayslip.java
new file mode 100644
index 00000000..1c56442f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPayslip.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_payslip")
+public class HrmPayslip extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long slipId;
+ private Long runId;
+ private Long empId;
+ private BigDecimal amountGross;
+ private BigDecimal amountNet;
+ private String itemsJson;
+ private String status;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPosition.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPosition.java
new file mode 100644
index 00000000..6104eb5e
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPosition.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 岗位
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_position")
+public class HrmPosition extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long positionId;
+ private String positionCode;
+ private String positionName;
+ private Long gradeId;
+ private Integer orderNum;
+ private Integer status;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPunch.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPunch.java
new file mode 100644
index 00000000..b60aac62
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmPunch.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_punch")
+public class HrmPunch extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long punchId;
+ private Long empId;
+ private Date punchTime;
+ private String source;
+ private String location;
+ private String deviceId;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSchedule.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSchedule.java
new file mode 100644
index 00000000..bc1f5f35
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSchedule.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_schedule")
+public class HrmSchedule extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long schedId;
+ private Long empId;
+ private Date workDate;
+ private Long shiftId;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSealReq.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSealReq.java
new file mode 100644
index 00000000..0c329f41
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmSealReq.java
@@ -0,0 +1,56 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 用印申请
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_seal_req")
+public class HrmSealReq extends BaseEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 业务ID */
+ @TableId
+ private Long bizId;
+
+ /** 申请人ID */
+ private Long empId;
+
+ /** 用印类型(公章/合同章/财务章等) */
+ private String sealType;
+
+ /** 用途说明 */
+ private String purpose;
+
+ /** 申请材料附件ID列表(CSV,对应sys_oss) */
+ private String applyFileIds;
+
+ /** 是否需要回执 1是0否 */
+ private Integer receiptRequired;
+
+ /** 回执状态 none/pending/done */
+ private String receiptStatus;
+
+ /** 回执附件ID列表(CSV,对应sys_oss或直接URL) */
+ private String receiptFileIds;
+
+ /** 状态 draft/running/approved/rejected/canceled */
+ private String status;
+
+ /** 备注 */
+ private String remark;
+
+ /** 删除标识 0正常 2删除 */
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmShift.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmShift.java
new file mode 100644
index 00000000..3c6e8fa3
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmShift.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalTime;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_shift")
+public class HrmShift extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long shiftId;
+ private String shiftCode;
+ private String shiftName;
+ private LocalTime startTime;
+ private LocalTime endTime;
+ private Integer breakMinutes;
+ private Integer isNight;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmStatSnapshot.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmStatSnapshot.java
new file mode 100644
index 00000000..db2bc3a4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmStatSnapshot.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_stat_snapshot")
+public class HrmStatSnapshot extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long snapId;
+ private Date statDate;
+ private String statType;
+ private String dimJson;
+ private BigDecimal valueNum;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmTravelReq.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmTravelReq.java
new file mode 100644
index 00000000..2d34695e
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmTravelReq.java
@@ -0,0 +1,32 @@
+package com.klp.hrm.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("hrm_travel_req")
+public class HrmTravelReq extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ private Long bizId;
+ private Long empId;
+ private Date startTime;
+ private Date endTime;
+ private String destination;
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+ @TableLogic
+ private Integer delFlag;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmAttendCalcBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmAttendCalcBo.java
new file mode 100644
index 00000000..1f1c947c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmAttendCalcBo.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmAttendCalcBo extends BaseEntity {
+
+ private Long calcId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotNull(message = "工作日期不能为空")
+ private Date workDate;
+
+ private Long shiftId;
+ private String status;
+ private Integer workMinutes;
+ private Integer lateMinutes;
+ private Integer earlyMinutes;
+ private Integer otMinutes;
+ private String leaveMinutesJson;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java
new file mode 100644
index 00000000..b5861acf
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmCertificateBo extends BaseEntity {
+
+ private Long certId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotBlank(message = "证书名称不能为空")
+ private String certName;
+
+ private String certNo;
+ private String issuedBy;
+ private Date validFrom;
+ private Date validTo;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java
new file mode 100644
index 00000000..07fbd23a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmContractBo extends BaseEntity {
+
+ private Long contractId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotBlank(message = "合同编号不能为空")
+ private String contractNo;
+
+ private String contractType;
+ private Date startDate;
+ private Date endDate;
+ private String status;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmpOrgPositionBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmpOrgPositionBo.java
new file mode 100644
index 00000000..f6959937
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmpOrgPositionBo.java
@@ -0,0 +1,32 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmEmpOrgPositionBo extends BaseEntity {
+
+ private Long relId;
+
+ @NotNull(message = "员工不能为空")
+ private Long empId;
+
+ @NotNull(message = "组织不能为空")
+ private Long orgId;
+
+ @NotNull(message = "岗位不能为空")
+ private Long positionId;
+
+ private Integer isPrimary;
+
+ private Date startDate;
+
+ private Date endDate;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmployeeBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmployeeBo.java
new file mode 100644
index 00000000..62aed66c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmEmployeeBo.java
@@ -0,0 +1,49 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 员工 Bo
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmEmployeeBo extends BaseEntity {
+
+ private Long empId;
+
+ private Long userId;
+
+ @NotBlank(message = "工号不能为空")
+ private String empNo;
+
+ @NotBlank(message = "姓名不能为空")
+ private String empName;
+
+ private String gender;
+
+ private String mobile;
+
+ private String email;
+
+ private String idNo;
+
+ private Date hireDate;
+
+ private String employmentType;
+
+ private String status;
+
+ private Long gradeId;
+
+ private Long mainOrgId;
+
+ private Long mainPositionId;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowActionBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowActionBo.java
new file mode 100644
index 00000000..62843785
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowActionBo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFlowActionBo extends BaseEntity {
+
+ private Long actionId;
+
+ private Long taskId;
+
+ @NotNull(message = "实例ID不能为空")
+ private Long instId;
+
+ @NotBlank(message = "动作不能为空")
+ private String action;
+
+ private String remark;
+
+ private Long actionUserId;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowInstanceBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowInstanceBo.java
new file mode 100644
index 00000000..1be41751
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowInstanceBo.java
@@ -0,0 +1,32 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFlowInstanceBo extends BaseEntity {
+
+ private Long instId;
+
+ @NotNull(message = "模板ID不能为空")
+ private Long tplId;
+
+ @NotBlank(message = "业务类型不能为空")
+ private String bizType;
+
+ @NotNull(message = "业务ID不能为空")
+ private Long bizId;
+
+ private String status;
+
+ private Long currentNodeId;
+
+ private Long startUserId;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowNodeBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowNodeBo.java
new file mode 100644
index 00000000..d93a7d13
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowNodeBo.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFlowNodeBo extends BaseEntity {
+
+ private Long nodeId;
+
+ @NotNull(message = "模板ID不能为空")
+ private Long tplId;
+
+ @NotNull(message = "顺序不能为空")
+ private Integer orderNo;
+
+ @NotBlank(message = "节点类型不能为空")
+ private String nodeType;
+
+ @NotBlank(message = "审批人规则不能为空")
+ private String approverRule;
+
+ private String approverValue;
+
+ private String fieldPerm;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowStartBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowStartBo.java
new file mode 100644
index 00000000..c0466fbc
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowStartBo.java
@@ -0,0 +1,18 @@
+package com.klp.hrm.domain.bo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class HrmFlowStartBo {
+ @NotNull(message = "模板ID不能为空")
+ private Long tplId;
+ @NotBlank(message = "业务类型不能为空")
+ private String bizType;
+ @NotNull(message = "业务ID不能为空")
+ private Long bizId;
+ private Long startUserId;
+ private String contentJson;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTaskBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTaskBo.java
new file mode 100644
index 00000000..19da50b2
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTaskBo.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFlowTaskBo extends BaseEntity {
+
+ private Long taskId;
+ @NotNull(message = "实例ID不能为空")
+ private Long instId;
+ @NotNull(message = "节点ID不能为空")
+ private Long nodeId;
+ private Long assigneeUserId;
+ private String status;
+ private Date expireTime;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTemplateBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTemplateBo.java
new file mode 100644
index 00000000..c3978082
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFlowTemplateBo.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFlowTemplateBo extends BaseEntity {
+
+ private Long tplId;
+
+ @NotBlank(message = "模板编码不能为空")
+ private String tplCode;
+
+ @NotBlank(message = "模板名称不能为空")
+ private String tplName;
+
+ @NotBlank(message = "业务类型不能为空")
+ private String bizType;
+
+ private Integer version;
+
+ private Integer enabled;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFormDataBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFormDataBo.java
new file mode 100644
index 00000000..a1519bb2
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmFormDataBo.java
@@ -0,0 +1,26 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmFormDataBo extends BaseEntity {
+
+ private Long formId;
+
+ @NotBlank(message = "业务类型不能为空")
+ private String bizType;
+
+ @NotNull(message = "业务ID不能为空")
+ private Long bizId;
+
+ @NotBlank(message = "表单内容不能为空")
+ private String contentJson;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmGradeBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmGradeBo.java
new file mode 100644
index 00000000..61d698ad
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmGradeBo.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmGradeBo extends BaseEntity {
+
+ private Long gradeId;
+
+ @NotBlank(message = "职级编码不能为空")
+ private String gradeCode;
+
+ @NotBlank(message = "职级名称不能为空")
+ private String gradeName;
+
+ private Integer levelNo;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmHeadcountPlanBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmHeadcountPlanBo.java
new file mode 100644
index 00000000..fa020a84
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmHeadcountPlanBo.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmHeadcountPlanBo extends BaseEntity {
+
+ private Long planId;
+
+ @NotNull(message = "组织不能为空")
+ private Long orgId;
+
+ @NotNull(message = "岗位不能为空")
+ private Long positionId;
+
+ @NotNull(message = "年份不能为空")
+ private Integer year;
+
+ @NotNull(message = "月份不能为空")
+ private Integer month;
+
+ @NotNull(message = "编制人数不能为空")
+ private Integer budgetCount;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveBalanceBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveBalanceBo.java
new file mode 100644
index 00000000..a32421d7
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveBalanceBo.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmLeaveBalanceBo extends BaseEntity {
+
+ private Long balId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotNull(message = "假期类型不能为空")
+ private String leaveType;
+
+ @NotNull(message = "余额小时不能为空")
+ private java.math.BigDecimal balanceHours;
+
+ private Date expireDate;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveReqBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveReqBo.java
new file mode 100644
index 00000000..d641518a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmLeaveReqBo.java
@@ -0,0 +1,37 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmLeaveReqBo extends BaseEntity {
+
+ private Long bizId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotBlank(message = "请假类型不能为空")
+ private String leaveType;
+
+ @NotNull(message = "开始时间不能为空")
+ private Date startTime;
+
+ @NotNull(message = "结束时间不能为空")
+ private Date endTime;
+
+ @NotNull(message = "时长不能为空")
+ private java.math.BigDecimal hours;
+
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOrgBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOrgBo.java
new file mode 100644
index 00000000..c1a53d5f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOrgBo.java
@@ -0,0 +1,39 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 组织 Bo
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmOrgBo extends BaseEntity {
+
+ /** 组织ID */
+ private Long orgId;
+
+ /** 父级组织ID */
+ private Long parentId;
+
+ @NotBlank(message = "组织编码不能为空")
+ private String orgCode;
+
+ @NotBlank(message = "组织名称不能为空")
+ private String orgName;
+
+ @NotBlank(message = "组织类型不能为空")
+ private String orgType;
+
+ private Long leaderUserId;
+
+ private Integer orderNum;
+
+ private Integer status;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOvertimeReqBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOvertimeReqBo.java
new file mode 100644
index 00000000..00711450
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmOvertimeReqBo.java
@@ -0,0 +1,35 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmOvertimeReqBo extends BaseEntity {
+
+ private Long bizId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ private String otType;
+
+ @NotNull(message = "开始时间不能为空")
+ private Date startTime;
+
+ @NotNull(message = "结束时间不能为空")
+ private Date endTime;
+
+ @NotNull(message = "时长不能为空")
+ private java.math.BigDecimal hours;
+
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayPlanBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayPlanBo.java
new file mode 100644
index 00000000..a1d5c544
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayPlanBo.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmPayPlanBo extends BaseEntity {
+
+ private Long planId;
+
+ @NotBlank(message = "方案名称不能为空")
+ private String planName;
+
+ private BigDecimal baseSalary;
+ private String allowanceJson;
+ private String formulaJson;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayRunBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayRunBo.java
new file mode 100644
index 00000000..17c18682
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayRunBo.java
@@ -0,0 +1,22 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmPayRunBo extends BaseEntity {
+
+ private Long runId;
+
+ @NotBlank(message = "核算周期不能为空")
+ private String period;
+
+ private String status;
+ private Long planId;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayslipBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayslipBo.java
new file mode 100644
index 00000000..08faab6b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPayslipBo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmPayslipBo extends BaseEntity {
+
+ private Long slipId;
+
+ @NotNull(message = "批次ID不能为空")
+ private Long runId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ private BigDecimal amountGross;
+ private BigDecimal amountNet;
+ private String itemsJson;
+ private String status;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPositionBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPositionBo.java
new file mode 100644
index 00000000..aa2e1c28
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPositionBo.java
@@ -0,0 +1,28 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmPositionBo extends BaseEntity {
+
+ private Long positionId;
+
+ @NotBlank(message = "岗位编码不能为空")
+ private String positionCode;
+
+ @NotBlank(message = "岗位名称不能为空")
+ private String positionName;
+
+ private Long gradeId;
+
+ private Integer orderNum;
+
+ private Integer status;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPunchBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPunchBo.java
new file mode 100644
index 00000000..9c8b79df
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmPunchBo.java
@@ -0,0 +1,26 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmPunchBo extends BaseEntity {
+
+ private Long punchId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotNull(message = "打卡时间不能为空")
+ private Date punchTime;
+
+ private String source;
+ private String location;
+ private String deviceId;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmScheduleBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmScheduleBo.java
new file mode 100644
index 00000000..fb0bec60
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmScheduleBo.java
@@ -0,0 +1,26 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmScheduleBo extends BaseEntity {
+
+ private Long schedId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotNull(message = "工作日期不能为空")
+ private Date workDate;
+
+ @NotNull(message = "班次ID不能为空")
+ private Long shiftId;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealReqBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealReqBo.java
new file mode 100644
index 00000000..d6aae649
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealReqBo.java
@@ -0,0 +1,51 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 用印申请 Bo
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmSealReqBo extends BaseEntity {
+
+ /** 业务ID(编辑/审批时必填) */
+ private Long bizId;
+
+ /** 申请人ID */
+ @NotNull(message = "申请人不能为空")
+ private Long empId;
+
+ /** 用印类型 */
+ @NotBlank(message = "用印类型不能为空")
+ private String sealType;
+
+ /** 用途说明 */
+ private String purpose;
+
+ /** 申请材料附件ID列表(CSV,对应sys_oss) */
+ private String applyFileIds;
+
+ /** 是否需要回执 1是0否 */
+ private Integer receiptRequired;
+
+ /** 备注 */
+ private String remark;
+
+ /** 状态 draft/running/approved/rejected/canceled */
+ private String status;
+
+ /** 关联流程模板ID(提交时可选,存在则自动发起审批) */
+ private Long flowTplId;
+
+ /** 流程发起人ID(可选,不填可由服务侧取当前登录人) */
+ private Long startUserId;
+
+ /** 提交流程时的表单内容JSON(可选) */
+ private String contentJson;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealStampBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealStampBo.java
new file mode 100644
index 00000000..4890f7ae
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmSealStampBo.java
@@ -0,0 +1,45 @@
+package com.klp.hrm.domain.bo;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 盖章命令(Java/Python 坐标统一使用 px)
+ */
+@Data
+public class HrmSealStampBo {
+
+ /** 待盖章 PDF 的 OSS 完整 URL */
+ @NotBlank(message = "待盖章文件地址不能为空")
+ private String targetFileUrl;
+
+ /** 章图片 OSS 完整 URL(透明 PNG/JPG) */
+ @NotBlank(message = "章图片地址不能为空")
+ private String stampImageUrl;
+
+ /** 页码(从1开始) */
+ @NotNull
+ @Min(1)
+ private Integer pageNo;
+
+ /** 左下角 X 坐标(px) */
+ @NotNull
+ @Min(0)
+ private Integer xPx;
+
+ /** 左下角 Y 坐标(px) */
+ @NotNull
+ @Min(0)
+ private Integer yPx;
+
+ /** 盖章宽度(px,可选) */
+ @Min(1)
+ private Integer widthPx;
+
+ /** 盖章高度(px,可选) */
+ @Min(1)
+ private Integer heightPx;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmShiftBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmShiftBo.java
new file mode 100644
index 00000000..5087d487
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmShiftBo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import java.time.LocalTime;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmShiftBo extends BaseEntity {
+
+ private Long shiftId;
+
+ @NotBlank(message = "班次编码不能为空")
+ private String shiftCode;
+
+ @NotBlank(message = "班次名称不能为空")
+ private String shiftName;
+
+ private LocalTime startTime;
+ private LocalTime endTime;
+ private Integer breakMinutes;
+ private Integer isNight;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmStatSnapshotBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmStatSnapshotBo.java
new file mode 100644
index 00000000..2774a2ad
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmStatSnapshotBo.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmStatSnapshotBo extends BaseEntity {
+
+ private Long snapId;
+
+ @NotNull(message = "统计日期不能为空")
+ private Date statDate;
+
+ @NotBlank(message = "指标类型不能为空")
+ private String statType;
+
+ private String dimJson;
+
+ private BigDecimal valueNum;
+
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmTravelReqBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmTravelReqBo.java
new file mode 100644
index 00000000..f2099949
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmTravelReqBo.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class HrmTravelReqBo extends BaseEntity {
+
+ private Long bizId;
+
+ @NotNull(message = "员工ID不能为空")
+ private Long empId;
+
+ @NotNull(message = "开始时间不能为空")
+ private Date startTime;
+
+ @NotNull(message = "结束时间不能为空")
+ private Date endTime;
+
+ private String destination;
+ private String reason;
+ private String status;
+ private String accessoryApplyIds;
+ private String accessoryReceiptIds;
+ private String remark;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmAttendCalcVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmAttendCalcVo.java
new file mode 100644
index 00000000..f77fc911
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmAttendCalcVo.java
@@ -0,0 +1,39 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmAttendCalcVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "考勤结果ID")
+ private Long calcId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "工作日期", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date workDate;
+ @Excel(name = "班次ID")
+ private Long shiftId;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "出勤分钟")
+ private Integer workMinutes;
+ @Excel(name = "迟到分钟")
+ private Integer lateMinutes;
+ @Excel(name = "早退分钟")
+ private Integer earlyMinutes;
+ @Excel(name = "加班分钟")
+ private Integer otMinutes;
+ @Excel(name = "请假分钟JSON")
+ private String leaveMinutesJson;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java
new file mode 100644
index 00000000..8c79a89d
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmCertificateVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "证书ID")
+ private Long certId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "证书名称")
+ private String certName;
+ @Excel(name = "证书编号")
+ private String certNo;
+ @Excel(name = "颁发机构")
+ private String issuedBy;
+ @Excel(name = "有效期开始", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date validFrom;
+ @Excel(name = "有效期结束", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date validTo;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java
new file mode 100644
index 00000000..7b486e30
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmContractVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "合同ID")
+ private Long contractId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "合同编号")
+ private String contractNo;
+ @Excel(name = "合同类型")
+ private String contractType;
+ @Excel(name = "开始日期", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date startDate;
+ @Excel(name = "结束日期", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date endDate;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmpOrgPositionVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmpOrgPositionVo.java
new file mode 100644
index 00000000..079fb19b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmpOrgPositionVo.java
@@ -0,0 +1,41 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmEmpOrgPositionVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "关系ID")
+ private Long relId;
+
+ @Excel(name = "员工ID")
+ private Long empId;
+
+ @Excel(name = "组织ID")
+ private Long orgId;
+
+ @Excel(name = "岗位ID")
+ private Long positionId;
+
+ @Excel(name = "是否主岗")
+ private Integer isPrimary;
+
+ @Excel(name = "开始日期")
+ private Date startDate;
+
+ @Excel(name = "结束日期")
+ private Date endDate;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmployeeVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmployeeVo.java
new file mode 100644
index 00000000..18ad6aac
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmEmployeeVo.java
@@ -0,0 +1,62 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmEmployeeVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "员工ID")
+ private Long empId;
+
+ @Excel(name = "用户ID")
+ private Long userId;
+
+ @Excel(name = "工号")
+ private String empNo;
+
+ @Excel(name = "姓名")
+ private String empName;
+
+ @Excel(name = "性别")
+ private String gender;
+
+ @Excel(name = "手机号")
+ private String mobile;
+
+ @Excel(name = "邮箱")
+ private String email;
+
+ @Excel(name = "证件号码")
+ private String idNo;
+
+ @Excel(name = "入职日期")
+ private Date hireDate;
+
+ @Excel(name = "雇佣类型")
+ private String employmentType;
+
+ @Excel(name = "在职状态")
+ private String status;
+
+ @Excel(name = "职级ID")
+ private Long gradeId;
+
+ @Excel(name = "主组织ID")
+ private Long mainOrgId;
+
+ @Excel(name = "主岗位ID")
+ private Long mainPositionId;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowActionVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowActionVo.java
new file mode 100644
index 00000000..8208f92a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowActionVo.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFlowActionVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "操作ID")
+ private Long actionId;
+ @Excel(name = "任务ID")
+ private Long taskId;
+ @Excel(name = "实例ID")
+ private Long instId;
+ @Excel(name = "动作")
+ private String action;
+ @Excel(name = "说明")
+ private String remark;
+ @Excel(name = "操作人")
+ private Long actionUserId;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowInstanceVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowInstanceVo.java
new file mode 100644
index 00000000..e043a5a5
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowInstanceVo.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFlowInstanceVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "实例ID")
+ private Long instId;
+ @Excel(name = "模板ID")
+ private Long tplId;
+ @Excel(name = "业务类型")
+ private String bizType;
+ @Excel(name = "业务ID")
+ private Long bizId;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "当前节点ID")
+ private Long currentNodeId;
+ @Excel(name = "发起人ID")
+ private Long startUserId;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowNodeVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowNodeVo.java
new file mode 100644
index 00000000..2aba04c4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowNodeVo.java
@@ -0,0 +1,33 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFlowNodeVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "节点ID")
+ private Long nodeId;
+ @Excel(name = "模板ID")
+ private Long tplId;
+ @Excel(name = "顺序")
+ private Integer orderNo;
+ @Excel(name = "节点类型")
+ private String nodeType;
+ @Excel(name = "审批人规则")
+ private String approverRule;
+ @Excel(name = "审批人取值")
+ private String approverValue;
+ @Excel(name = "字段权限")
+ private String fieldPerm;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTaskVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTaskVo.java
new file mode 100644
index 00000000..a2ccdb0c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTaskVo.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFlowTaskVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "任务ID")
+ private Long taskId;
+ @Excel(name = "实例ID")
+ private Long instId;
+ @Excel(name = "节点ID")
+ private Long nodeId;
+ @Excel(name = "处理人")
+ private Long assigneeUserId;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "到期时间")
+ private Date expireTime;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTemplateVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTemplateVo.java
new file mode 100644
index 00000000..aa06828a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFlowTemplateVo.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFlowTemplateVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "模板ID")
+ private Long tplId;
+ @Excel(name = "模板编码")
+ private String tplCode;
+ @Excel(name = "模板名称")
+ private String tplName;
+ @Excel(name = "业务类型")
+ private String bizType;
+ @Excel(name = "版本")
+ private Integer version;
+ @Excel(name = "是否启用")
+ private Integer enabled;
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFormDataVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFormDataVo.java
new file mode 100644
index 00000000..1864f87c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmFormDataVo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmFormDataVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "表单ID")
+ private Long formId;
+ @Excel(name = "业务类型")
+ private String bizType;
+ @Excel(name = "业务ID")
+ private Long bizId;
+ @Excel(name = "表单内容")
+ private String contentJson;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmGradeVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmGradeVo.java
new file mode 100644
index 00000000..47453cb7
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmGradeVo.java
@@ -0,0 +1,32 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmGradeVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "职级ID")
+ private Long gradeId;
+
+ @Excel(name = "职级编码")
+ private String gradeCode;
+
+ @Excel(name = "职级名称")
+ private String gradeName;
+
+ @Excel(name = "层级序号")
+ private Integer levelNo;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmHeadcountPlanVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmHeadcountPlanVo.java
new file mode 100644
index 00000000..10d3b9e8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmHeadcountPlanVo.java
@@ -0,0 +1,38 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmHeadcountPlanVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "编制ID")
+ private Long planId;
+
+ @Excel(name = "组织ID")
+ private Long orgId;
+
+ @Excel(name = "岗位ID")
+ private Long positionId;
+
+ @Excel(name = "年份")
+ private Integer year;
+
+ @Excel(name = "月份")
+ private Integer month;
+
+ @Excel(name = "编制人数")
+ private Integer budgetCount;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveBalanceVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveBalanceVo.java
new file mode 100644
index 00000000..47f9137f
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveBalanceVo.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmLeaveBalanceVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "余额ID")
+ private Long balId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "假期类型")
+ private String leaveType;
+ @Excel(name = "余额小时")
+ private BigDecimal balanceHours;
+ @Excel(name = "到期日", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date expireDate;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveReqVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveReqVo.java
new file mode 100644
index 00000000..b0f23424
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmLeaveReqVo.java
@@ -0,0 +1,40 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmLeaveReqVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "业务ID")
+ private Long bizId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "请假类型")
+ private String leaveType;
+ @Excel(name = "开始时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+ @Excel(name = "结束时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @Excel(name = "时长(小时)")
+ private BigDecimal hours;
+ @Excel(name = "原因")
+ private String reason;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "申请附件")
+ private String accessoryApplyIds;
+ @Excel(name = "回执附件")
+ private String accessoryReceiptIds;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOrgVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOrgVo.java
new file mode 100644
index 00000000..c255f64e
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOrgVo.java
@@ -0,0 +1,44 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 组织 VO
+ */
+@Data
+public class HrmOrgVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "组织ID")
+ private Long orgId;
+
+ @Excel(name = "父级ID")
+ private Long parentId;
+
+ @Excel(name = "组织编码")
+ private String orgCode;
+
+ @Excel(name = "组织名称")
+ private String orgName;
+
+ @Excel(name = "组织类型")
+ private String orgType;
+
+ @Excel(name = "负责人用户ID")
+ private Long leaderUserId;
+
+ private Integer orderNum;
+
+ private Integer status;
+
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOvertimeReqVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOvertimeReqVo.java
new file mode 100644
index 00000000..d67d6017
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmOvertimeReqVo.java
@@ -0,0 +1,40 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmOvertimeReqVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "业务ID")
+ private Long bizId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "加班类型")
+ private String otType;
+ @Excel(name = "开始时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+ @Excel(name = "结束时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @Excel(name = "时长(小时)")
+ private BigDecimal hours;
+ @Excel(name = "原因")
+ private String reason;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "申请附件")
+ private String accessoryApplyIds;
+ @Excel(name = "回执附件")
+ private String accessoryReceiptIds;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayPlanVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayPlanVo.java
new file mode 100644
index 00000000..aec20d4c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayPlanVo.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmPayPlanVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "方案ID")
+ private Long planId;
+ @Excel(name = "方案名称")
+ private String planName;
+ @Excel(name = "基础工资")
+ private BigDecimal baseSalary;
+ @Excel(name = "津贴配置JSON")
+ private String allowanceJson;
+ @Excel(name = "公式配置JSON")
+ private String formulaJson;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayRunVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayRunVo.java
new file mode 100644
index 00000000..e2c61dd5
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayRunVo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmPayRunVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "批次ID")
+ private Long runId;
+ @Excel(name = "核算周期")
+ private String period;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "方案ID")
+ private Long planId;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayslipVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayslipVo.java
new file mode 100644
index 00000000..3a24e5db
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPayslipVo.java
@@ -0,0 +1,34 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmPayslipVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "工资条ID")
+ private Long slipId;
+ @Excel(name = "批次ID")
+ private Long runId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "应发金额")
+ private BigDecimal amountGross;
+ @Excel(name = "实发金额")
+ private BigDecimal amountNet;
+ @Excel(name = "工资项JSON")
+ private String itemsJson;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPositionVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPositionVo.java
new file mode 100644
index 00000000..7b1c3be9
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPositionVo.java
@@ -0,0 +1,38 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmPositionVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "岗位ID")
+ private Long positionId;
+
+ @Excel(name = "岗位编码")
+ private String positionCode;
+
+ @Excel(name = "岗位名称")
+ private String positionName;
+
+ @Excel(name = "职级ID")
+ private Long gradeId;
+
+ @Excel(name = "排序")
+ private Integer orderNum;
+
+ @Excel(name = "状态")
+ private Integer status;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPunchVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPunchVo.java
new file mode 100644
index 00000000..204e5a35
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmPunchVo.java
@@ -0,0 +1,31 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmPunchVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "打卡ID")
+ private Long punchId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "打卡时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date punchTime;
+ @Excel(name = "来源")
+ private String source;
+ @Excel(name = "位置")
+ private String location;
+ @Excel(name = "设备ID")
+ private String deviceId;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmScheduleVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmScheduleVo.java
new file mode 100644
index 00000000..021f2c56
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmScheduleVo.java
@@ -0,0 +1,27 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmScheduleVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "排班ID")
+ private Long schedId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "工作日期", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date workDate;
+ @Excel(name = "班次ID")
+ private Long shiftId;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmSealReqVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmSealReqVo.java
new file mode 100644
index 00000000..59db37e5
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmSealReqVo.java
@@ -0,0 +1,50 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用印申请 VO
+ */
+@Data
+public class HrmSealReqVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "业务ID")
+ private Long bizId;
+
+ @Excel(name = "申请人ID")
+ private Long empId;
+
+ @Excel(name = "用印类型")
+ private String sealType;
+
+ @Excel(name = "用途说明")
+ private String purpose;
+
+ @Excel(name = "申请材料附件ID列表")
+ private String applyFileIds;
+
+ @Excel(name = "是否需要回执")
+ private Integer receiptRequired;
+
+ @Excel(name = "回执状态")
+ private String receiptStatus;
+
+ @Excel(name = "回执附件ID列表")
+ private String receiptFileIds;
+
+ @Excel(name = "状态")
+ private String status;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmShiftVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmShiftVo.java
new file mode 100644
index 00000000..63691fff
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmShiftVo.java
@@ -0,0 +1,34 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.util.Date;
+
+@Data
+public class HrmShiftVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "班次ID")
+ private Long shiftId;
+ @Excel(name = "班次编码")
+ private String shiftCode;
+ @Excel(name = "班次名称")
+ private String shiftName;
+ @Excel(name = "上班时间")
+ private LocalTime startTime;
+ @Excel(name = "下班时间")
+ private LocalTime endTime;
+ @Excel(name = "休息分钟")
+ private Integer breakMinutes;
+ @Excel(name = "是否夜班")
+ private Integer isNight;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmStatSnapshotVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmStatSnapshotVo.java
new file mode 100644
index 00000000..b1491db4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmStatSnapshotVo.java
@@ -0,0 +1,30 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class HrmStatSnapshotVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "快照ID")
+ private Long snapId;
+ @Excel(name = "统计日期", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date statDate;
+ @Excel(name = "指标类型")
+ private String statType;
+ @Excel(name = "维度JSON")
+ private String dimJson;
+ @Excel(name = "数值")
+ private BigDecimal valueNum;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private Date updateTime;
+ private String updateBy;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmTravelReqVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmTravelReqVo.java
new file mode 100644
index 00000000..d759b266
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmTravelReqVo.java
@@ -0,0 +1,37 @@
+package com.klp.hrm.domain.vo;
+
+import com.klp.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class HrmTravelReqVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name = "业务ID")
+ private Long bizId;
+ @Excel(name = "员工ID")
+ private Long empId;
+ @Excel(name = "开始时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+ @Excel(name = "结束时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @Excel(name = "目的地")
+ private String destination;
+ @Excel(name = "原因")
+ private String reason;
+ @Excel(name = "状态")
+ private String status;
+ @Excel(name = "申请附件")
+ private String accessoryApplyIds;
+ @Excel(name = "回执附件")
+ private String accessoryReceiptIds;
+ @Excel(name = "备注")
+ private String remark;
+ private String createBy;
+ private Date createTime;
+ private String updateBy;
+ private Date updateTime;
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmAttendCalcMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmAttendCalcMapper.java
new file mode 100644
index 00000000..fcd97bac
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmAttendCalcMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmAttendCalc;
+import com.klp.hrm.domain.vo.HrmAttendCalcVo;
+
+public interface HrmAttendCalcMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmCertificateMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmCertificateMapper.java
new file mode 100644
index 00000000..3191a208
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmCertificateMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmCertificate;
+import com.klp.hrm.domain.vo.HrmCertificateVo;
+
+public interface HrmCertificateMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmContractMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmContractMapper.java
new file mode 100644
index 00000000..412c5695
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmContractMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmContract;
+import com.klp.hrm.domain.vo.HrmContractVo;
+
+public interface HrmContractMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmpOrgPositionMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmpOrgPositionMapper.java
new file mode 100644
index 00000000..4ba80119
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmpOrgPositionMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmEmpOrgPosition;
+import com.klp.hrm.domain.vo.HrmEmpOrgPositionVo;
+
+public interface HrmEmpOrgPositionMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmployeeMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmployeeMapper.java
new file mode 100644
index 00000000..516fcf96
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmEmployeeMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmEmployee;
+import com.klp.hrm.domain.vo.HrmEmployeeVo;
+
+public interface HrmEmployeeMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowActionMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowActionMapper.java
new file mode 100644
index 00000000..ceb64531
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowActionMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFlowAction;
+import com.klp.hrm.domain.vo.HrmFlowActionVo;
+
+public interface HrmFlowActionMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowInstanceMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowInstanceMapper.java
new file mode 100644
index 00000000..8739f1a9
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowInstanceMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFlowInstance;
+import com.klp.hrm.domain.vo.HrmFlowInstanceVo;
+
+public interface HrmFlowInstanceMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowNodeMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowNodeMapper.java
new file mode 100644
index 00000000..a9dfe930
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowNodeMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFlowNode;
+import com.klp.hrm.domain.vo.HrmFlowNodeVo;
+
+public interface HrmFlowNodeMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTaskMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTaskMapper.java
new file mode 100644
index 00000000..331126b8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTaskMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFlowTask;
+import com.klp.hrm.domain.vo.HrmFlowTaskVo;
+
+public interface HrmFlowTaskMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTemplateMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTemplateMapper.java
new file mode 100644
index 00000000..b144f451
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFlowTemplateMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFlowTemplate;
+import com.klp.hrm.domain.vo.HrmFlowTemplateVo;
+
+public interface HrmFlowTemplateMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFormDataMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFormDataMapper.java
new file mode 100644
index 00000000..de380ac5
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmFormDataMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmFormData;
+import com.klp.hrm.domain.vo.HrmFormDataVo;
+
+public interface HrmFormDataMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmGradeMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmGradeMapper.java
new file mode 100644
index 00000000..9a0d8b88
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmGradeMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmGrade;
+import com.klp.hrm.domain.vo.HrmGradeVo;
+
+public interface HrmGradeMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmHeadcountPlanMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmHeadcountPlanMapper.java
new file mode 100644
index 00000000..447e01f6
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmHeadcountPlanMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmHeadcountPlan;
+import com.klp.hrm.domain.vo.HrmHeadcountPlanVo;
+
+public interface HrmHeadcountPlanMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveBalanceMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveBalanceMapper.java
new file mode 100644
index 00000000..8434fd72
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveBalanceMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmLeaveBalance;
+import com.klp.hrm.domain.vo.HrmLeaveBalanceVo;
+
+public interface HrmLeaveBalanceMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveReqMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveReqMapper.java
new file mode 100644
index 00000000..560f36dc
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmLeaveReqMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmLeaveReq;
+import com.klp.hrm.domain.vo.HrmLeaveReqVo;
+
+public interface HrmLeaveReqMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOrgMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOrgMapper.java
new file mode 100644
index 00000000..806d1d17
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOrgMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmOrg;
+import com.klp.hrm.domain.vo.HrmOrgVo;
+
+public interface HrmOrgMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOvertimeReqMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOvertimeReqMapper.java
new file mode 100644
index 00000000..ace5bd4b
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmOvertimeReqMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmOvertimeReq;
+import com.klp.hrm.domain.vo.HrmOvertimeReqVo;
+
+public interface HrmOvertimeReqMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayPlanMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayPlanMapper.java
new file mode 100644
index 00000000..997562c1
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayPlanMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmPayPlan;
+import com.klp.hrm.domain.vo.HrmPayPlanVo;
+
+public interface HrmPayPlanMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayRunMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayRunMapper.java
new file mode 100644
index 00000000..d1d7a7b6
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayRunMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmPayRun;
+import com.klp.hrm.domain.vo.HrmPayRunVo;
+
+public interface HrmPayRunMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayslipMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayslipMapper.java
new file mode 100644
index 00000000..0d82a722
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPayslipMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmPayslip;
+import com.klp.hrm.domain.vo.HrmPayslipVo;
+
+public interface HrmPayslipMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPositionMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPositionMapper.java
new file mode 100644
index 00000000..7f265d2c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPositionMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmPosition;
+import com.klp.hrm.domain.vo.HrmPositionVo;
+
+public interface HrmPositionMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPunchMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPunchMapper.java
new file mode 100644
index 00000000..bd5ae0d4
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmPunchMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmPunch;
+import com.klp.hrm.domain.vo.HrmPunchVo;
+
+public interface HrmPunchMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmScheduleMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmScheduleMapper.java
new file mode 100644
index 00000000..c67fc824
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmScheduleMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmSchedule;
+import com.klp.hrm.domain.vo.HrmScheduleVo;
+
+public interface HrmScheduleMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmSealReqMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmSealReqMapper.java
new file mode 100644
index 00000000..22fd0c1d
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmSealReqMapper.java
@@ -0,0 +1,11 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmSealReq;
+import com.klp.hrm.domain.vo.HrmSealReqVo;
+
+/**
+ * 用印申请 Mapper
+ */
+public interface HrmSealReqMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmShiftMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmShiftMapper.java
new file mode 100644
index 00000000..8e2f55a0
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmShiftMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmShift;
+import com.klp.hrm.domain.vo.HrmShiftVo;
+
+public interface HrmShiftMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmStatSnapshotMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmStatSnapshotMapper.java
new file mode 100644
index 00000000..c04c1ee2
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmStatSnapshotMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmStatSnapshot;
+import com.klp.hrm.domain.vo.HrmStatSnapshotVo;
+
+public interface HrmStatSnapshotMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmTravelReqMapper.java b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmTravelReqMapper.java
new file mode 100644
index 00000000..85555d26
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/mapper/HrmTravelReqMapper.java
@@ -0,0 +1,8 @@
+package com.klp.hrm.mapper;
+
+import com.klp.common.core.mapper.BaseMapperPlus;
+import com.klp.hrm.domain.HrmTravelReq;
+import com.klp.hrm.domain.vo.HrmTravelReqVo;
+
+public interface HrmTravelReqMapper extends BaseMapperPlus {
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmAttendCalcService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmAttendCalcService.java
new file mode 100644
index 00000000..c1caf374
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmAttendCalcService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmAttendCalcBo;
+import com.klp.hrm.domain.vo.HrmAttendCalcVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmAttendCalcService {
+
+ HrmAttendCalcVo queryById(Long calcId);
+
+ TableDataInfo queryPageList(HrmAttendCalcBo bo, PageQuery pageQuery);
+
+ List queryList(HrmAttendCalcBo bo);
+
+ Boolean insertByBo(HrmAttendCalcBo bo);
+
+ Boolean updateByBo(HrmAttendCalcBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmCertificateService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmCertificateService.java
new file mode 100644
index 00000000..2193a10c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmCertificateService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmCertificateBo;
+import com.klp.hrm.domain.vo.HrmCertificateVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmCertificateService {
+
+ HrmCertificateVo queryById(Long certId);
+
+ TableDataInfo queryPageList(HrmCertificateBo bo, PageQuery pageQuery);
+
+ List queryList(HrmCertificateBo bo);
+
+ Boolean insertByBo(HrmCertificateBo bo);
+
+ Boolean updateByBo(HrmCertificateBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmContractService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmContractService.java
new file mode 100644
index 00000000..ce1ef7eb
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmContractService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmContractBo;
+import com.klp.hrm.domain.vo.HrmContractVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmContractService {
+
+ HrmContractVo queryById(Long contractId);
+
+ TableDataInfo queryPageList(HrmContractBo bo, PageQuery pageQuery);
+
+ List queryList(HrmContractBo bo);
+
+ Boolean insertByBo(HrmContractBo bo);
+
+ Boolean updateByBo(HrmContractBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmpOrgPositionService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmpOrgPositionService.java
new file mode 100644
index 00000000..80c85604
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmpOrgPositionService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmEmpOrgPositionBo;
+import com.klp.hrm.domain.vo.HrmEmpOrgPositionVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmEmpOrgPositionService {
+ HrmEmpOrgPositionVo queryById(Long relId);
+
+ TableDataInfo queryPageList(HrmEmpOrgPositionBo bo, PageQuery pageQuery);
+
+ List queryList(HrmEmpOrgPositionBo bo);
+
+ Boolean insertByBo(HrmEmpOrgPositionBo bo);
+
+ Boolean updateByBo(HrmEmpOrgPositionBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmployeeService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmployeeService.java
new file mode 100644
index 00000000..5fa6b5ec
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmEmployeeService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmEmployeeBo;
+import com.klp.hrm.domain.vo.HrmEmployeeVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmEmployeeService {
+ HrmEmployeeVo queryById(Long empId);
+
+ TableDataInfo queryPageList(HrmEmployeeBo bo, PageQuery pageQuery);
+
+ List queryList(HrmEmployeeBo bo);
+
+ Boolean insertByBo(HrmEmployeeBo bo);
+
+ Boolean updateByBo(HrmEmployeeBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowActionService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowActionService.java
new file mode 100644
index 00000000..46de369a
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowActionService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowActionBo;
+import com.klp.hrm.domain.vo.HrmFlowActionVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFlowActionService {
+
+ HrmFlowActionVo queryById(Long actionId);
+
+ TableDataInfo queryPageList(HrmFlowActionBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFlowActionBo bo);
+
+ Boolean insertByBo(HrmFlowActionBo bo);
+
+ Boolean updateByBo(HrmFlowActionBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowInstanceService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowInstanceService.java
new file mode 100644
index 00000000..b529c3db
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowInstanceService.java
@@ -0,0 +1,29 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowInstanceBo;
+import com.klp.hrm.domain.vo.HrmFlowInstanceVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFlowInstanceService {
+
+ HrmFlowInstanceVo queryById(Long instId);
+
+ /**
+ * 启动实例并生成首个待办
+ */
+ Long startInstance(com.klp.hrm.domain.bo.HrmFlowStartBo bo);
+
+ TableDataInfo queryPageList(HrmFlowInstanceBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFlowInstanceBo bo);
+
+ Boolean insertByBo(HrmFlowInstanceBo bo);
+
+ Boolean updateByBo(HrmFlowInstanceBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowNodeService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowNodeService.java
new file mode 100644
index 00000000..7f3a2282
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowNodeService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowNodeBo;
+import com.klp.hrm.domain.vo.HrmFlowNodeVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFlowNodeService {
+
+ HrmFlowNodeVo queryById(Long nodeId);
+
+ TableDataInfo queryPageList(HrmFlowNodeBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFlowNodeBo bo);
+
+ Boolean insertByBo(HrmFlowNodeBo bo);
+
+ Boolean updateByBo(HrmFlowNodeBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTaskService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTaskService.java
new file mode 100644
index 00000000..534abc2c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTaskService.java
@@ -0,0 +1,39 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowTaskBo;
+import com.klp.hrm.domain.vo.HrmFlowTaskVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFlowTaskService {
+
+ HrmFlowTaskVo queryById(Long taskId);
+
+ TableDataInfo queryPageList(HrmFlowTaskBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFlowTaskBo bo);
+
+ Boolean insertByBo(HrmFlowTaskBo bo);
+
+ Boolean updateByBo(HrmFlowTaskBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+
+ /**
+ * 审批通过,可附带盖章指令(仅用印业务)
+ */
+ Boolean approve(Long taskId, Long actionUserId, String remark, com.klp.hrm.domain.bo.HrmSealStampBo stampBo);
+
+ /**
+ * 审批驳回
+ */
+ Boolean reject(Long taskId, Long actionUserId, String remark);
+
+ /**
+ * 撤回/取消
+ */
+ Boolean withdraw(Long taskId, Long actionUserId, String remark);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTemplateService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTemplateService.java
new file mode 100644
index 00000000..87b0e6d0
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFlowTemplateService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFlowTemplateBo;
+import com.klp.hrm.domain.vo.HrmFlowTemplateVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFlowTemplateService {
+
+ HrmFlowTemplateVo queryById(Long tplId);
+
+ TableDataInfo queryPageList(HrmFlowTemplateBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFlowTemplateBo bo);
+
+ Boolean insertByBo(HrmFlowTemplateBo bo);
+
+ Boolean updateByBo(HrmFlowTemplateBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFormDataService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFormDataService.java
new file mode 100644
index 00000000..11401415
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmFormDataService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmFormDataBo;
+import com.klp.hrm.domain.vo.HrmFormDataVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmFormDataService {
+ HrmFormDataVo queryById(Long formId);
+
+ TableDataInfo queryPageList(HrmFormDataBo bo, PageQuery pageQuery);
+
+ List queryList(HrmFormDataBo bo);
+
+ Boolean insertByBo(HrmFormDataBo bo);
+
+ Boolean updateByBo(HrmFormDataBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmGradeService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmGradeService.java
new file mode 100644
index 00000000..bd2282a6
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmGradeService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmGradeBo;
+import com.klp.hrm.domain.vo.HrmGradeVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmGradeService {
+ HrmGradeVo queryById(Long gradeId);
+
+ TableDataInfo queryPageList(HrmGradeBo bo, PageQuery pageQuery);
+
+ List queryList(HrmGradeBo bo);
+
+ Boolean insertByBo(HrmGradeBo bo);
+
+ Boolean updateByBo(HrmGradeBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmHeadcountPlanService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmHeadcountPlanService.java
new file mode 100644
index 00000000..d34ce7c8
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmHeadcountPlanService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmHeadcountPlanBo;
+import com.klp.hrm.domain.vo.HrmHeadcountPlanVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmHeadcountPlanService {
+ HrmHeadcountPlanVo queryById(Long planId);
+
+ TableDataInfo queryPageList(HrmHeadcountPlanBo bo, PageQuery pageQuery);
+
+ List queryList(HrmHeadcountPlanBo bo);
+
+ Boolean insertByBo(HrmHeadcountPlanBo bo);
+
+ Boolean updateByBo(HrmHeadcountPlanBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveBalanceService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveBalanceService.java
new file mode 100644
index 00000000..10add0ad
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveBalanceService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmLeaveBalanceBo;
+import com.klp.hrm.domain.vo.HrmLeaveBalanceVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmLeaveBalanceService {
+
+ HrmLeaveBalanceVo queryById(Long balId);
+
+ TableDataInfo queryPageList(HrmLeaveBalanceBo bo, PageQuery pageQuery);
+
+ List queryList(HrmLeaveBalanceBo bo);
+
+ Boolean insertByBo(HrmLeaveBalanceBo bo);
+
+ Boolean updateByBo(HrmLeaveBalanceBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveReqService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveReqService.java
new file mode 100644
index 00000000..c16efc5c
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmLeaveReqService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmLeaveReqBo;
+import com.klp.hrm.domain.vo.HrmLeaveReqVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmLeaveReqService {
+
+ HrmLeaveReqVo queryById(Long bizId);
+
+ TableDataInfo queryPageList(HrmLeaveReqBo bo, PageQuery pageQuery);
+
+ List queryList(HrmLeaveReqBo bo);
+
+ Boolean insertByBo(HrmLeaveReqBo bo);
+
+ Boolean updateByBo(HrmLeaveReqBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOrgService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOrgService.java
new file mode 100644
index 00000000..96eb9af0
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOrgService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmOrgBo;
+import com.klp.hrm.domain.vo.HrmOrgVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmOrgService {
+ HrmOrgVo queryById(Long orgId);
+
+ TableDataInfo queryPageList(HrmOrgBo bo, PageQuery pageQuery);
+
+ List queryList(HrmOrgBo bo);
+
+ Boolean insertByBo(HrmOrgBo bo);
+
+ Boolean updateByBo(HrmOrgBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOvertimeReqService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOvertimeReqService.java
new file mode 100644
index 00000000..6f792caf
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmOvertimeReqService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmOvertimeReqBo;
+import com.klp.hrm.domain.vo.HrmOvertimeReqVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmOvertimeReqService {
+
+ HrmOvertimeReqVo queryById(Long bizId);
+
+ TableDataInfo queryPageList(HrmOvertimeReqBo bo, PageQuery pageQuery);
+
+ List queryList(HrmOvertimeReqBo bo);
+
+ Boolean insertByBo(HrmOvertimeReqBo bo);
+
+ Boolean updateByBo(HrmOvertimeReqBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayPlanService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayPlanService.java
new file mode 100644
index 00000000..d8e29f46
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayPlanService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmPayPlanBo;
+import com.klp.hrm.domain.vo.HrmPayPlanVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmPayPlanService {
+
+ HrmPayPlanVo queryById(Long planId);
+
+ TableDataInfo queryPageList(HrmPayPlanBo bo, PageQuery pageQuery);
+
+ List queryList(HrmPayPlanBo bo);
+
+ Boolean insertByBo(HrmPayPlanBo bo);
+
+ Boolean updateByBo(HrmPayPlanBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayRunService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayRunService.java
new file mode 100644
index 00000000..03763afc
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayRunService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmPayRunBo;
+import com.klp.hrm.domain.vo.HrmPayRunVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmPayRunService {
+
+ HrmPayRunVo queryById(Long runId);
+
+ TableDataInfo queryPageList(HrmPayRunBo bo, PageQuery pageQuery);
+
+ List queryList(HrmPayRunBo bo);
+
+ Boolean insertByBo(HrmPayRunBo bo);
+
+ Boolean updateByBo(HrmPayRunBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayslipService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayslipService.java
new file mode 100644
index 00000000..5259e59e
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPayslipService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmPayslipBo;
+import com.klp.hrm.domain.vo.HrmPayslipVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmPayslipService {
+
+ HrmPayslipVo queryById(Long slipId);
+
+ TableDataInfo queryPageList(HrmPayslipBo bo, PageQuery pageQuery);
+
+ List queryList(HrmPayslipBo bo);
+
+ Boolean insertByBo(HrmPayslipBo bo);
+
+ Boolean updateByBo(HrmPayslipBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPositionService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPositionService.java
new file mode 100644
index 00000000..c9648d0d
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPositionService.java
@@ -0,0 +1,23 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmPositionBo;
+import com.klp.hrm.domain.vo.HrmPositionVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmPositionService {
+ HrmPositionVo queryById(Long positionId);
+
+ TableDataInfo queryPageList(HrmPositionBo bo, PageQuery pageQuery);
+
+ List queryList(HrmPositionBo bo);
+
+ Boolean insertByBo(HrmPositionBo bo);
+
+ Boolean updateByBo(HrmPositionBo bo);
+
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPunchService.java b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPunchService.java
new file mode 100644
index 00000000..c7208ce3
--- /dev/null
+++ b/klp-hrm/src/main/java/com/klp/hrm/service/IHrmPunchService.java
@@ -0,0 +1,24 @@
+package com.klp.hrm.service;
+
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.hrm.domain.bo.HrmPunchBo;
+import com.klp.hrm.domain.vo.HrmPunchVo;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface IHrmPunchService {
+
+ HrmPunchVo queryById(Long punchId);
+
+ TableDataInfo queryPageList(HrmPunchBo bo, PageQuery pageQuery);
+
+ List queryList(HrmPunchBo bo);
+
+ Boolean insertByBo(HrmPunchBo bo);
+
+ Boolean updateByBo(HrmPunchBo bo);
+
+ Boolean deleteWithValidByIds(Collection