Преглед на файлове

Merge remote-tracking branch 'origin/master_20240722' into master_20240722

dongpo преди 6 месеца
родител
ревизия
e51c714af8
променени са 10 файла, в които са добавени 46 реда и са изтрити 5 реда
  1. 7 2
      yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/service/info/EmployeeInfoServiceImpl.java
  2. 3 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/contract/vo/RelationsContractPageReqVO.java
  3. 3 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/vo/RelationsConversionSaveReqVO.java
  4. 3 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/vo/RelationsEntrySaveReqVO.java
  5. 1 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/dal/mysql/contract/RelationsContractMapper.java
  6. 2 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/conversion/RelationsConversionServiceImpl.java
  7. 17 0
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/entry/RelationsEntryServiceImpl.java
  8. 2 1
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
  9. 2 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuTenantRelateServiceImpl.java
  10. 6 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java

+ 7 - 2
yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/service/info/EmployeeInfoServiceImpl.java

@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -174,7 +175,11 @@ public class EmployeeInfoServiceImpl implements EmployeeInfoService {
 //            Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
 //            createReqVO.setTenantId(tenantId);
 //        }
+        if (createReqVO.getBaseAnnualLeave() == null) {
+            createReqVO.setBaseAnnualLeave(BigDecimal.ZERO);
+        }
         createReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
+        createReqVO.setUsedAnnualLeave(BigDecimal.ZERO);
         if (createReqVO.getBaseAnnualLeave() != null && createReqVO.getUsedAnnualLeave() != null) {
             createReqVO.setRemainingAnnualLeave(createReqVO.getBaseAnnualLeave().subtract(createReqVO.getUsedAnnualLeave()));
         }
@@ -239,8 +244,8 @@ public class EmployeeInfoServiceImpl implements EmployeeInfoService {
             }
             updateReqVO.setPosition(post.getName());
         }
-        if (updateReqVO.getBaseAnnualLeave() != null && updateReqVO.getUsedAnnualLeave() != null) {
-            updateReqVO.setRemainingAnnualLeave(updateReqVO.getBaseAnnualLeave().subtract(updateReqVO.getUsedAnnualLeave()));
+        if (updateReqVO.getBaseAnnualLeave() != null) {
+            updateReqVO.setRemainingAnnualLeave(updateReqVO.getBaseAnnualLeave().subtract(employeeInfoDO.getUsedAnnualLeave()));
         }
         EmployeeInfoDO updateObj = BeanUtils.toBean(updateReqVO, EmployeeInfoDO.class);
         return infoMapper.updateById(updateObj);

+ 3 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/contract/vo/RelationsContractPageReqVO.java

@@ -67,4 +67,7 @@ public class RelationsContractPageReqVO extends PageParam {
     @Schema(description = "租户编号", example = "4014")
     private Long tenantId;
 
+    @Schema(description = "创建人员工姓名", example = "芋艿")
+    private String creatorEmployeeName;
+
 }

+ 3 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/vo/RelationsConversionSaveReqVO.java

@@ -40,6 +40,9 @@ public class RelationsConversionSaveReqVO {
     @Schema(description = "部门uuid", example = "11190")
     private String deptUuid;
 
+    @Schema(description = "职位ID")
+    private Long postId;
+
     @Schema(description = "职位")
     private String position;
 

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

@@ -22,6 +22,9 @@ public class RelationsEntrySaveReqVO {
     @Schema(description = "部门", example = "24059")
     private Long deptId;
 
+    @Schema(description = "职位ID")
+    private Long postId;
+
     @Schema(description = "职位")
     private String position;
 

+ 1 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/dal/mysql/contract/RelationsContractMapper.java

@@ -37,6 +37,7 @@ public interface RelationsContractMapper extends BaseMapperX<RelationsContractDO
                 .betweenIfPresent(RelationsContractDO::getCreateTime, reqVO.getCreateTime())
                 .eqIfPresent(RelationsContractDO::getEmployeeId, reqVO.getEmployeeId())
                 .eqIfPresent(RelationsContractDO::getTenantId, reqVO.getTenantId())
+                .likeIfPresent(RelationsContractDO::getCreatorEmployeeName, reqVO.getCreatorEmployeeName())
                 .orderByDesc(RelationsContractDO::getId));
     }
 

+ 2 - 0
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/conversion/RelationsConversionServiceImpl.java

@@ -60,6 +60,7 @@ public class RelationsConversionServiceImpl implements RelationsConversionServic
         createReqVO.setEmployeeName(employee.getName());
         createReqVO.setEmployeePhone(employee.getPhone());
         createReqVO.setDeptId(employee.getDeptId());
+        createReqVO.setPostId(employee.getPostId());
         createReqVO.setPosition(employee.getPosition());
         // 插入
         String infoId = IdUtil.fastSimpleUUID();
@@ -97,6 +98,7 @@ public class RelationsConversionServiceImpl implements RelationsConversionServic
         updateReqVO.setEmployeeName(employee.getName());
         updateReqVO.setEmployeePhone(employee.getPhone());
         updateReqVO.setDeptId(employee.getDeptId());
+        updateReqVO.setPostId(employee.getPostId());
         updateReqVO.setPosition(employee.getPosition());
         // 更新
         RelationsConversionDO updateObj = BeanUtils.toBean(updateReqVO, RelationsConversionDO.class);

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

@@ -17,13 +17,16 @@ import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntr
 import cn.iocoder.yudao.module.relations.dal.dataobject.entry.RelationsEntryDO;
 import cn.iocoder.yudao.module.relations.dal.mysql.entry.RelationsEntryMapper;
 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 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.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -46,6 +49,8 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
     private DeptApi deptApi;
     @Resource
     private EmployeeApi employeeApi;
+    @Resource
+    private PostApi postApi;
 
     @Override
     public Long createEntry(RelationsEntrySaveReqVO createReqVO) {
@@ -54,6 +59,12 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
 //        Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
         Long userId = user != null && user.getId() != null ? user.getId() : 0L;
 //        createReqVO.setTenantId(tenantId);
+        // 职位
+        Long postId = createReqVO.getPostId();
+        PostRespDTO post = postApi.getPost(postId);
+        if (Objects.nonNull(post)) {
+            createReqVO.setPosition(post.getName());
+        }
         // 插入
         String infoId = IdUtil.fastSimpleUUID();
         createReqVO.setEntryId(infoId);
@@ -84,6 +95,12 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
         validateEntryExists(updateReqVO.getId());
         // 保存业务uuid到附件中
         fileApi.updateFileBiz(updateReqVO.getFileIdList(), updateReqVO.getEntryId());
+        // 职位
+        Long postId = updateReqVO.getPostId();
+        PostRespDTO post = postApi.getPost(postId);
+        if (Objects.nonNull(post)) {
+            updateReqVO.setPosition(post.getName());
+        }
         // 更新
         RelationsEntryDO updateObj = BeanUtils.toBean(updateReqVO, RelationsEntryDO.class);
         entryMapper.updateById(updateObj);

+ 2 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@@ -24,7 +24,7 @@ public interface ErrorCodeConstants {
     ErrorCode MENU_NOT_EXISTS = new ErrorCode(1_002_001_003, "菜单不存在");
     ErrorCode MENU_EXISTS_CHILDREN = new ErrorCode(1_002_001_004, "存在子菜单,无法删除");
     ErrorCode MENU_PARENT_NOT_DIR_OR_MENU = new ErrorCode(1_002_001_005, "父菜单的类型必须是目录或者菜单");
-    ErrorCode TENANT_RELATE_NOT_EXISTS = new ErrorCode(1_002_001_006, "菜单租户关系不存在");
+    ErrorCode MENU_TENANT_RELATE_NOT_EXISTS = new ErrorCode(1_002_001_006, "菜单租户关系不存在");
 
     // ========== 角色模块 1-002-002-000 ==========
     ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1_002_002_000, "角色不存在");
@@ -116,6 +116,7 @@ public interface ErrorCodeConstants {
     ErrorCode TENANT_CAN_NOT_UPDATE_SYSTEM = new ErrorCode(1_002_015_003, "系统租户不能进行修改、删除等操作!");
     ErrorCode TENANT_NAME_DUPLICATE = new ErrorCode(1_002_015_004, "名字为【{}】的租户已存在");
     ErrorCode TENANT_WEBSITE_DUPLICATE = new ErrorCode(1_002_015_005, "域名为【{}】的租户已存在");
+    ErrorCode TENANT_EMPLOYEE_HAS_LEFT = new ErrorCode(1_002_015_006, "该租户下员工已离职");
 
     // ========== 租户套餐 1-002-016-000 ==========
     ErrorCode TENANT_PACKAGE_NOT_EXISTS = new ErrorCode(1_002_016_000, "租户套餐不存在");

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuTenantRelateServiceImpl.java

@@ -12,7 +12,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import javax.annotation.Resource;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.TENANT_RELATE_NOT_EXISTS;
+import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MENU_TENANT_RELATE_NOT_EXISTS;
 
 /**
  * 菜单租户关系 Service 实现类
@@ -54,7 +54,7 @@ public class MenuTenantRelateServiceImpl implements MenuTenantRelateService {
 
     private void validateTenantRelateExists(Long id) {
         if (tenantRelateMapper.selectById(id) == null) {
-            throw exception(TENANT_RELATE_NOT_EXISTS);
+            throw exception(MENU_TENANT_RELATE_NOT_EXISTS);
         }
     }
 

+ 6 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java

@@ -462,6 +462,12 @@ public class TenantServiceImpl implements TenantService {
         if (!userTenantRelateService.checkUserHasTenant(user.getId(), tenant.getId())) {
             throw exception(USER_NOT_IN_TENANT);
         }
+        // 判断员工是否已离职
+        EmployeeQueryReqDTO reqDTO = new EmployeeQueryReqDTO().setUserId(user.getId()).setTenantId(tenant.getId());
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployee(reqDTO);
+        if (loginEmployee == null || "4".equals(loginEmployee.getEmployeeStatus())) {
+            throw exception(TENANT_EMPLOYEE_HAS_LEFT);
+        }
         // 更新用户信息当前租户
         userService.updateUserTenantId(user.getId(), tenant.getId());
         // 将这个用户所有租户关系设为不生效