zhaopeiqing hai 6 meses
pai
achega
2d4d607e17
Modificáronse 9 ficheiros con 108 adicións e 5 borrados
  1. 3 2
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/AttendanceInfoController.java
  2. 26 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/AttendanceLeaveController.java
  3. 4 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/vo/AttendanceLeaveRespVO.java
  4. 17 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/RelationsEntryController.java
  5. 4 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/vo/RelationsEntryRespVO.java
  6. 16 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/RelationsTurnoverController.java
  7. 4 2
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/vo/RelationsTurnoverRespVO.java
  8. 17 1
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/entry/RelationsEntryServiceImpl.java
  9. 17 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/turnover/RelationsTurnoverServiceImpl.java

+ 3 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/AttendanceInfoController.java

@@ -100,6 +100,7 @@ public class AttendanceInfoController {
     @PostMapping("/get-import-template")
     @PermitAll
     @Operation(summary = "获得导入考勤模板")
+    @ApiAccessLog(operateType = EXPORT)
     public void importTemplate(HttpServletResponse response) throws IOException {
         // 手动创建导出 demo
         List<AttendanceInfoImportExcelVO> list = Arrays.asList(
@@ -112,8 +113,8 @@ public class AttendanceInfoController {
                         .workStartTime(LocalTime.of(9, 0)).workEndTime(LocalTime.of(18, 30))
                         .build()
         );
-        // 输出
-        ExcelUtils.write(response, "考勤导入模板.xls", "考勤列表", AttendanceInfoImportExcelVO.class, list);
+        // 导出 Excel
+        ExcelUtils.write(response, "考勤导入模板.xls", "数据", AttendanceInfoImportExcelVO.class, list);
     }
 
     @PostMapping("/import-excel")

+ 26 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/AttendanceLeaveController.java

@@ -1,10 +1,15 @@
 package cn.iocoder.yudao.module.attendance.controller.admin.leave;
 
+import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.attendance.controller.admin.business.vo.AttendanceBusinessRespVO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.dicttenant.DictDataTenantApi;
+import cn.iocoder.yudao.module.system.api.dicttenant.dto.DictDataTenantRespDTO;
+import cn.iocoder.yudao.module.system.enums.dicttenant.DictTypeTenantEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -48,6 +53,8 @@ public class AttendanceLeaveController {
     private DeptApi deptApi;
     @Resource
     private FileApi fileApi;
+    @Resource
+    private DictDataTenantApi dictDataTenantApi;
 
     @PostMapping("/create")
     @Operation(summary = "创建请假信息")
@@ -88,6 +95,15 @@ public class AttendanceLeaveController {
                 respVO.setDeptName(dept.getName());
             }
         }
+        // 请假类型
+        if (StrUtil.isNotBlank(respVO.getLeaveType())) {
+            List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_LEAVE_TYPE.getType());
+            Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+            String leaveTypeDesc = dictDataMap.get(respVO.getLeaveType());
+            if (StrUtil.isNotBlank(leaveTypeDesc)) {
+                respVO.setLeaveTypeDesc(leaveTypeDesc);
+            }
+        }
         // 附件列表
         List<FileDTO> fileList = fileApi.getFileDTOListByBiz(respVO.getLeaveId());
         respVO.setFileList(fileList);
@@ -102,6 +118,9 @@ public class AttendanceLeaveController {
     public CommonResult<PageResult<AttendanceLeaveRespVO>> getLeavePage(@Valid AttendanceLeavePageReqVO pageReqVO) {
         PageResult<AttendanceLeaveDO> pageResult = leaveService.getLeavePage(pageReqVO);
         PageResult<AttendanceLeaveRespVO> result = BeanUtils.toBean(pageResult, AttendanceLeaveRespVO.class);
+        // 请假类型
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_LEAVE_TYPE.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
         if (result != null && result.getList() != null && result.getList().size() > 0) {
             result.getList().forEach(respVO -> {
                 // 部门
@@ -111,6 +130,13 @@ public class AttendanceLeaveController {
                         respVO.setDeptName(dept.getName());
                     }
                 }
+                // 请假类型
+                if (StrUtil.isNotBlank(respVO.getLeaveType())) {
+                    String leaveTypeDesc = dictDataMap.get(respVO.getLeaveType());
+                    if (StrUtil.isNotBlank(leaveTypeDesc)) {
+                        respVO.setLeaveTypeDesc(leaveTypeDesc);
+                    }
+                }
             });
         }
         return success(result);

+ 4 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/vo/AttendanceLeaveRespVO.java

@@ -59,6 +59,10 @@ public class AttendanceLeaveRespVO {
     @ExcelProperty("请假类型")
     private String leaveType;
 
+    @Schema(description="请假类型label")
+    @ExcelProperty("请假类型")
+    private String leaveTypeDesc;
+
     @Schema(description = "开始日期")
     @ExcelProperty("开始日期")
     private String startDate;

+ 17 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/RelationsEntryController.java

@@ -1,7 +1,12 @@
 package cn.iocoder.yudao.module.relations.controller.admin.entry;
 
+import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.dicttenant.DictDataTenantApi;
+import cn.iocoder.yudao.module.system.api.dicttenant.dto.DictDataTenantRespDTO;
+import cn.iocoder.yudao.module.system.enums.dicttenant.DictTypeTenantEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -42,6 +47,8 @@ public class RelationsEntryController {
     private RelationsEntryService entryService;
     @Resource
     private DeptApi deptApi;
+    @Resource
+    private DictDataTenantApi dictDataTenantApi;
 
     @PostMapping("/create")
     @Operation(summary = "创建入职信息")
@@ -81,6 +88,9 @@ public class RelationsEntryController {
     public CommonResult<PageResult<RelationsEntryRespVO>> getEntryPage(@Valid RelationsEntryPageReqVO pageReqVO) {
         PageResult<RelationsEntryDO> pageResult = entryService.getEntryPage(pageReqVO);
         PageResult<RelationsEntryRespVO> result = BeanUtils.toBean(pageResult, RelationsEntryRespVO.class);
+        // 员工类型
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_EMPLOYEE_TYPE.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
         if (result != null && result.getList() != null && result.getList().size() > 0) {
             result.getList().forEach(respVO -> {
                 // 部门
@@ -90,6 +100,13 @@ public class RelationsEntryController {
                         respVO.setDeptName(dept.getName());
                     }
                 }
+                // 员工类型
+                if (StrUtil.isNotBlank(respVO.getEmployeeType())) {
+                    String employeeTypeDesc = dictDataMap.get(respVO.getEmployeeType());
+                    if (StrUtil.isNotBlank(employeeTypeDesc)) {
+                        respVO.setEmployeeTypeDesc(employeeTypeDesc);
+                    }
+                }
             });
         }
         return success(result);

+ 4 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/vo/RelationsEntryRespVO.java

@@ -41,6 +41,10 @@ public class RelationsEntryRespVO {
     @ExcelProperty("员工类型")
     private String employeeType;
 
+    @Schema(description = "员工类型label")
+    @ExcelProperty("员工类型")
+    private String employeeTypeDesc;
+
     @Schema(description = "性别")
     @ExcelProperty("性别")
     private String gender;

+ 16 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/RelationsTurnoverController.java

@@ -1,8 +1,13 @@
 package cn.iocoder.yudao.module.relations.controller.admin.turnover;
 
+import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.relations.controller.admin.renew.vo.RelationsRenewRespVO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.dicttenant.DictDataTenantApi;
+import cn.iocoder.yudao.module.system.api.dicttenant.dto.DictDataTenantRespDTO;
+import cn.iocoder.yudao.module.system.enums.dicttenant.DictTypeTenantEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -43,6 +48,8 @@ public class RelationsTurnoverController {
     private RelationsTurnoverService turnoverService;
     @Resource
     private DeptApi deptApi;
+    @Resource
+    private DictDataTenantApi dictDataTenantApi;
 
     @PostMapping("/create")
     @Operation(summary = "创建离职信息")
@@ -82,6 +89,9 @@ public class RelationsTurnoverController {
     public CommonResult<PageResult<RelationsTurnoverRespVO>> getTurnoverPage(@Valid RelationsTurnoverPageReqVO pageReqVO) {
         PageResult<RelationsTurnoverDO> pageResult = turnoverService.getTurnoverPage(pageReqVO);
         PageResult<RelationsTurnoverRespVO> result = BeanUtils.toBean(pageResult, RelationsTurnoverRespVO.class);
+        // 离职原因
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_TURNOVER_REASON.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
         if (result != null && result.getList() != null && result.getList().size() > 0) {
             result.getList().forEach(respVO -> {
                 // 部门
@@ -91,6 +101,12 @@ public class RelationsTurnoverController {
                         respVO.setDeptName(dept.getName());
                     }
                 }
+                if (StrUtil.isNotBlank(respVO.getTurnoverReason())) {
+                    String turnoverReasonDesc = dictDataMap.get(respVO.getTurnoverReason());
+                    if (StrUtil.isNotBlank(turnoverReasonDesc)) {
+                        respVO.setTurnoverReasonDesc(turnoverReasonDesc);
+                    }
+                }
             });
         }
         return success(result);

+ 4 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/vo/RelationsTurnoverRespVO.java

@@ -69,10 +69,12 @@ public class RelationsTurnoverRespVO {
     @ExcelProperty("离职日期")
     private String turnoverDate;
 
-    @Schema(description = "离职原因", example = "不对")
-    @ExcelProperty("离职原因")
+    @Schema(description = "离职原因value")
     private String turnoverReason;
 
+    @Schema(description = "离职原因label")
+    private String turnoverReasonDesc;
+
     @Schema(description = "备注")
     @ExcelProperty("备注")
     private String remarks;

+ 17 - 1
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/entry/RelationsEntryServiceImpl.java

@@ -1,11 +1,12 @@
 package cn.iocoder.yudao.module.relations.service.entry;
 
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
-import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
@@ -20,12 +21,16 @@ import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO;
+import cn.iocoder.yudao.module.system.api.dicttenant.DictDataTenantApi;
+import cn.iocoder.yudao.module.system.api.dicttenant.dto.DictDataTenantRespDTO;
+import cn.iocoder.yudao.module.system.enums.dicttenant.DictTypeTenantEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -51,6 +56,8 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
     private EmployeeApi employeeApi;
     @Resource
     private PostApi postApi;
+    @Resource
+    private DictDataTenantApi dictDataTenantApi;
 
     @Override
     public Long createEntry(RelationsEntrySaveReqVO createReqVO) {
@@ -158,6 +165,15 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
                 respVO.setDeptName(dept.getName());
             }
         }
+        // 员工类型
+        if (StrUtil.isNotBlank(entryDO.getEmployeeType())) {
+            List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_EMPLOYEE_TYPE.getType());
+            Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+            String employeeTypeDesc = dictDataMap.get(entryDO.getEmployeeType());
+            if (StrUtil.isNotBlank(employeeTypeDesc)) {
+                respVO.setEmployeeTypeDesc(employeeTypeDesc);
+            }
+        }
         // 第五步:返回VO对象
         return respVO;
     }

+ 17 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/turnover/RelationsTurnoverServiceImpl.java

@@ -1,7 +1,9 @@
 package cn.iocoder.yudao.module.relations.service.turnover;
 
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
@@ -18,12 +20,16 @@ import cn.iocoder.yudao.module.relations.dal.dataobject.turnover.RelationsTurnov
 import cn.iocoder.yudao.module.relations.dal.mysql.turnover.RelationsTurnoverMapper;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.dicttenant.DictDataTenantApi;
+import cn.iocoder.yudao.module.system.api.dicttenant.dto.DictDataTenantRespDTO;
+import cn.iocoder.yudao.module.system.enums.dicttenant.DictTypeTenantEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -46,6 +52,8 @@ public class RelationsTurnoverServiceImpl implements RelationsTurnoverService {
     private DeptApi deptApi;
     @Resource
     private EmployeeApi employeeApi;
+    @Resource
+    private DictDataTenantApi dictDataTenantApi;
 
     @Override
     public Long createTurnover(RelationsTurnoverSaveReqVO createReqVO) {
@@ -155,6 +163,15 @@ public class RelationsTurnoverServiceImpl implements RelationsTurnoverService {
                 respVO.setDeptName(dept.getName());
             }
         }
+        // 离职原因
+        if (StrUtil.isNotBlank(turnoverDO.getTurnoverReason())) {
+            List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_TURNOVER_REASON.getType());
+            Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+            String turnoverReasonDesc = dictDataMap.get(turnoverDO.getTurnoverReason());
+            if (StrUtil.isNotBlank(turnoverReasonDesc)) {
+                respVO.setTurnoverReasonDesc(turnoverReasonDesc);
+            }
+        }
         // 第五步:返回VO对象
         return respVO;
     }