Selaa lähdekoodia

Merge branch 'master_20240722' of http://git.dgtis.com/15896567520/oneportal_saas into master_20240722

zhaopeiqing 6 kuukautta sitten
vanhempi
commit
5c5e6bb836
16 muutettua tiedostoa jossa 285 lisäystä ja 108 poistoa
  1. 67 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/OaMeetingReserveController.java
  2. 9 9
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveRespVO.java
  3. 53 3
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/OaMeetingRoomController.java
  4. 0 3
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/vo/OaMeetingRoomRespVO.java
  5. 2 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/vo/OaMeetingRoomSaveReqVO.java
  6. 35 35
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoRespVO.java
  7. 23 15
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java
  8. 14 14
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/room/OaMeetingRoomServiceImpl.java
  9. 8 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java
  10. 39 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java
  11. 2 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java
  12. 2 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java
  13. 10 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/renew/OaRenewServiceImpl.java
  14. 1 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/stamp/OaStampServiceImpl.java
  15. 14 10
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/turnover/OaTurnoverServiceImpl.java
  16. 6 0
      yudao-module-personnel/yudao-module-employee-api/src/main/java/cn/iocoder/yudao/module/employee/api/dto/EmployeeRespDTO.java

+ 67 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/OaMeetingReserveController.java

@@ -234,9 +234,75 @@ public class OaMeetingReserveController {
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<OaMeetingReserveDO> list = oaMeetingReserveService.getOaMeetingReservePage(pageReqVO).getList();
+        List<OaMeetingReserveRespVO> oaMeetingReserveRespVOList = BeanUtils.toBean(list, OaMeetingReserveRespVO.class);
+        if (oaMeetingReserveRespVOList.size() > 0) {
+            // 申请人
+            List<Long> applyEmployeeIds = oaMeetingReserveRespVOList.stream().map(OaMeetingReserveRespVO::getApplyEmployeeId).collect(Collectors.toList());
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(applyEmployeeIds);
+            Map<Long, EmployeeRespDTO> employeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId, Function.identity());
+
+            // // 参与人
+            // List<Long> participantEmployeeIds = new ArrayList<>();
+            // for (OaMeetingReserveDO oaMeetingReserveDO : oaMeetingReserveDOList) {
+            //     String participants = oaMeetingReserveDO.getParticipants();
+            //     if (StrUtil.isNotBlank(participants)) {
+            //         String[] participantsStringArray = participants.split(",");
+            //         List<Long> participantsLongList = Arrays.stream(participantsStringArray).map(Long::valueOf).collect(Collectors.toList());
+            //         participantEmployeeIds.addAll(participantsLongList);
+            //     }
+            // }
+            // List<AdminUserRespDTO> participantUserList = adminUserApi.getUserList(participantEmployeeIds);
+            // Map<Long, AdminUserRespDTO> participantUserMap = participantUserList.stream().collect(Collectors.toMap(AdminUserRespDTO::getId, Function.identity()));
+
+            // 状态描述
+            Map<String, String> enumsMap = Arrays.stream(MeetingReserveStatusEnum.values())
+                    .collect(Collectors.toMap(MeetingReserveStatusEnum::getStatus, MeetingReserveStatusEnum::getDesc));
+
+            // 部门名称
+            List<Long> deptIds = oaMeetingReserveRespVOList.stream().map(OaMeetingReserveRespVO::getDeptId).collect(Collectors.toList());
+            List<DeptRespDTO> deptList = deptApi.getDeptList(deptIds);
+            Map<Long, DeptRespDTO> deptMap = deptList.stream().collect(Collectors.toMap(DeptRespDTO::getId, Function.identity()));
+
+            // 会议室名称
+            List<Long> roomIds = oaMeetingReserveRespVOList.stream().map(OaMeetingReserveRespVO::getRoomId).collect(Collectors.toList());
+            List<OaMeetingRoomRespDTO> roomList = oaMeetingRoomService.getOaMeetingRoomList(roomIds);
+            Map<Long, OaMeetingRoomRespDTO> roomRespDTOMap = roomList.stream().collect(Collectors.toMap(OaMeetingRoomRespDTO::getId, Function.identity()));
+
+            for (OaMeetingReserveRespVO oaMeetingReserveRespVO : oaMeetingReserveRespVOList) {
+                // 申请人姓名
+                Long applyEmployeeId = oaMeetingReserveRespVO.getApplyEmployeeId();
+                if (applyEmployeeId != null) {
+                    EmployeeRespDTO employeeRespDTO = employeeRespDTOMap.get(applyEmployeeId);
+                    if (employeeRespDTO != null) {
+                        oaMeetingReserveRespVO.setApplyEmployeeName(employeeRespDTO.getName());
+                    }
+                }
+                // // 参与人姓名
+                // String participants = oaMeetingReserveRespVO.getParticipants();
+                // 状态描述
+                String status = oaMeetingReserveRespVO.getStatus();
+                oaMeetingReserveRespVO.setStatusDesc(enumsMap.get(status));
+                // 部门名称
+                Long deptId = oaMeetingReserveRespVO.getDeptId();
+                if (deptId != null) {
+                    DeptRespDTO dept = deptMap.get(deptId);
+                    if (dept != null) {
+                        oaMeetingReserveRespVO.setDepName(dept.getName());
+                    }
+                }
+                // 会议室名称
+                Long roomId = oaMeetingReserveRespVO.getRoomId();
+                if (roomId != null) {
+                    OaMeetingRoomRespDTO room = roomRespDTOMap.get(roomId);
+                    if (room != null) {
+                        oaMeetingReserveRespVO.setRoomName(room.getName());
+                    }
+                }
+            }
+        }
         // 导出 Excel
         ExcelUtils.write(response, "会议室预定管理信息.xls", "数据", OaMeetingReserveRespVO.class,
-                        BeanUtils.toBean(list, OaMeetingReserveRespVO.class));
+                oaMeetingReserveRespVOList);
     }
 
     @GetMapping("/cancel")

+ 9 - 9
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveRespVO.java

@@ -14,15 +14,15 @@ import com.alibaba.excel.annotation.*;
 public class OaMeetingReserveRespVO {
 
     @Schema(description = "主键id")
-    @ExcelProperty("主键id")
+    // @ExcelProperty("主键id")
     private Long id;
 
     @Schema(description = "预定uuid")
-    @ExcelProperty("预定uuid")
+    // @ExcelProperty("预定uuid")
     private String reserveUuid;
 
     @Schema(description = "会议室id")
-    @ExcelProperty("会议室id")
+    // @ExcelProperty("会议室id")
     private Long roomId;
 
     @Schema(description = "会议室名称", example = "上海会议室")
@@ -42,7 +42,7 @@ public class OaMeetingReserveRespVO {
     private String endTime;
 
     @Schema(description = "申请人id")
-    @ExcelProperty("申请人id")
+    // @ExcelProperty("申请人id")
     private Long applyEmployeeId;
 
     @Schema(description = "申请人名字")
@@ -54,7 +54,7 @@ public class OaMeetingReserveRespVO {
     private String applyEmployeePhone;
 
     @Schema(description = "申请人部门")
-    @ExcelProperty("申请人部门")
+    // @ExcelProperty("申请人部门")
     private Long deptId;
 
     @Schema(description = "申请人部门名称")
@@ -66,19 +66,19 @@ public class OaMeetingReserveRespVO {
     private String number;
 
     @Schema(description = "参会人员id集合")
-    @ExcelProperty("参会人员id集合")
+    // @ExcelProperty("参会人员id集合")
     private List<Long> participants;
 
     @Schema(description = "参会人员名字,逗号分隔")
-    @ExcelProperty("参会人员名字,逗号分隔")
+    // @ExcelProperty("参会人员名字,逗号分隔")
     private String participantsName;
 
     @Schema(description = "发送类型:1站内信 2短信 3邮件,目前仅1启用")
-    @ExcelProperty("发送类型:1站内信 2短信 3邮件,目前仅1启用")
+    // @ExcelProperty("发送类型:1站内信 2短信 3邮件,目前仅1启用")
     private String sendType;
 
     @Schema(description = "会议预定状态:1未开始 2进行中 3已结束 4已取消", example = "2")
-    @ExcelProperty("会议预定状态:1未开始 2进行中 3已结束 4已取消")
+    // @ExcelProperty("会议预定状态:1未开始 2进行中 3已结束 4已取消")
     private String status;
 
     @Schema(description = "会议预定状态描述:1未开始 2进行中 3已结束 4已取消", example = "2")

+ 53 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/OaMeetingRoomController.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.meeting.room;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
@@ -11,9 +12,12 @@ import cn.iocoder.yudao.module.bpm.controller.admin.meeting.room.vo.OaMeetingRoo
 import cn.iocoder.yudao.module.bpm.controller.admin.meeting.room.vo.OaMeetingRoomSaveReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.room.OaMeetingRoomDO;
 import cn.iocoder.yudao.module.bpm.service.meeting.room.OaMeetingRoomService;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import liquibase.pro.packaged.R;
 import org.springdoc.api.annotations.ParameterObject;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -23,6 +27,9 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -36,6 +43,9 @@ public class OaMeetingRoomController {
     @Resource
     private OaMeetingRoomService oaMeetingRoomService;
 
+    @Resource
+    private EmployeeApi employeeApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建会议室信息管理")
     // @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-room:create')")
@@ -66,7 +76,16 @@ public class OaMeetingRoomController {
     // @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-room:query')")
     public CommonResult<OaMeetingRoomRespVO> getOaMeetingRoom(@RequestParam("id") Long id) {
         OaMeetingRoomDO oaMeetingRoom = oaMeetingRoomService.getOaMeetingRoom(id);
-        return success(BeanUtils.toBean(oaMeetingRoom, OaMeetingRoomRespVO.class));
+        OaMeetingRoomRespVO oaMeetingRoomRespVO = BeanUtils.toBean(oaMeetingRoom, OaMeetingRoomRespVO.class);
+
+        // 设置管理员名称
+        if (oaMeetingRoomRespVO != null) {
+            EmployeeRespDTO employee = employeeApi.getEmployeeById(oaMeetingRoomRespVO.getManagerId());
+            if (employee != null) {
+                oaMeetingRoomRespVO.setManagerName(employee.getName());
+            }
+        }
+        return success(oaMeetingRoomRespVO);
     }
 
     @GetMapping("/page")
@@ -74,7 +93,24 @@ public class OaMeetingRoomController {
     // @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-room:query')")
     public CommonResult<PageResult<OaMeetingRoomRespVO>> getOaMeetingRoomPage(@Valid @ParameterObject OaMeetingRoomPageReqVO pageReqVO) {
         PageResult<OaMeetingRoomDO> pageResult = oaMeetingRoomService.getOaMeetingRoomPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, OaMeetingRoomRespVO.class));
+        PageResult<OaMeetingRoomRespVO> voPageResult = BeanUtils.toBean(pageResult, OaMeetingRoomRespVO.class);
+
+        // 设置管理员名称
+        List<OaMeetingRoomRespVO> list = voPageResult.getList();
+        if (CollUtil.isNotEmpty(list)) {
+            List<Long> managerIdList = list.stream().map(OaMeetingRoomRespVO::getManagerId).collect(Collectors.toList());
+            List<EmployeeRespDTO> employeeList = employeeApi.getEmployeeListByIds(managerIdList);
+            Map<Long, EmployeeRespDTO> employeeManagerMap = employeeList.stream().collect(Collectors.toMap(EmployeeRespDTO::getId, Function.identity()));
+
+            for (OaMeetingRoomRespVO oaMeetingRoomRespVO : list) {
+                EmployeeRespDTO employeeRespDTO = employeeManagerMap.get(oaMeetingRoomRespVO.getManagerId());
+                if (employeeRespDTO != null) {
+                    oaMeetingRoomRespVO.setManagerName(employeeRespDTO.getName());
+                }
+            }
+
+        }
+        return success(voPageResult);
     }
 
     @GetMapping("/list")
@@ -93,9 +129,23 @@ public class OaMeetingRoomController {
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<OaMeetingRoomDO> list = oaMeetingRoomService.getOaMeetingRoomPage(pageReqVO).getList();
+        List<OaMeetingRoomRespVO> respVOList = BeanUtils.toBean(list, OaMeetingRoomRespVO.class);
+        if (CollUtil.isNotEmpty(respVOList)) {
+            List<Long> managerIdList = respVOList.stream().map(OaMeetingRoomRespVO::getManagerId).collect(Collectors.toList());
+            Map<Long, EmployeeRespDTO> employeeManagerMap = employeeApi.getEmployeeListByIds(managerIdList)
+                    .stream()
+                    .collect(Collectors.toMap(EmployeeRespDTO::getId, Function.identity()));
+            for (OaMeetingRoomRespVO oaMeetingRoomRespVO : respVOList) {
+                EmployeeRespDTO employeeRespDTO = employeeManagerMap.get(oaMeetingRoomRespVO.getManagerId());
+                if (employeeRespDTO != null) {
+                    oaMeetingRoomRespVO.setManagerName(employeeRespDTO.getName());
+                }
+            }
+
+        }
         // 导出 Excel
         ExcelUtils.write(response, "会议室信息管理.xls", "数据", OaMeetingRoomRespVO.class,
-                        BeanUtils.toBean(list, OaMeetingRoomRespVO.class));
+                        respVOList);
     }
 
 }

+ 0 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/vo/OaMeetingRoomRespVO.java

@@ -13,11 +13,9 @@ import java.time.LocalDateTime;
 public class OaMeetingRoomRespVO {
 
     @Schema(description = "主键id", example = "2")
-    @ExcelProperty("主键id")
     private Long id;
 
     @Schema(description = "会议室uuid", example = "788dcb3483d54782bc71875e523e8deb")
-    @ExcelProperty("会议室uuid")
     private String roomUuid;
 
     @Schema(description = "会议室名称", example = "上海会议室")
@@ -29,7 +27,6 @@ public class OaMeetingRoomRespVO {
     private String size;
 
     @Schema(description = "管理员id", example = "1")
-    @ExcelProperty("管理员id")
     private Long managerId;
 
     @Schema(description = "管理员姓名")

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/room/vo/OaMeetingRoomSaveReqVO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.meeting.room.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import javax.validation.constraints.Min;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
@@ -19,6 +20,7 @@ public class OaMeetingRoomSaveReqVO {
 
     @Schema(description = "可容纳人数")
     @NotBlank(message = "可容纳人数不能为空")
+    @Min(value = 1, message = "可容纳人数最小值为 1")
     private String size;
 
     @Schema(description = "管理员id", example = "1")

+ 35 - 35
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoRespVO.java

@@ -13,88 +13,88 @@ import java.util.List;
 @ExcelIgnoreUnannotated
 public class OaStampInfoRespVO {
 
-    @Schema(description = "表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "16622")
-    @ExcelProperty("表单主键")
+    @Schema(description = "表单主键")
+    // @ExcelProperty("表单主键")
     private Long id;
 
-    @Schema(description = "uuid", example = "24566")
-    @ExcelProperty("uuid")
+    @Schema(description = "uuid")
+    // @ExcelProperty("uuid")
     private String stampUuid;
 
-    @Schema(description = "用印申请人id", example = "12863")
-    @ExcelProperty("用印申请人id")
+    @Schema(description = "用印申请人id")
+    // @ExcelProperty("用印申请人id")
     private Long employeeId;
 
-    @Schema(description = "用印申请人uuid", example = "2808")
-    @ExcelProperty("用印申请人uuid")
+    @Schema(description = "用印申请人uuid")
+    // @ExcelProperty("用印申请人uuid")
     private String employeeUuid;
 
-    @Schema(description = "用印申请员工姓名", example = "赵六")
-    @ExcelProperty("用印申请员工姓名")
+    @Schema(description = "用印")
+    @ExcelProperty("用印")
     private String employeeName;
 
-    @Schema(description = "用印申请员工手机号")
-    @ExcelProperty("用印申请员工手机号")
-    private String employeePhone;
-
-    @Schema(description = "用户账号id", example = "25125")
-    @ExcelProperty("用户账号id")
+    @Schema(description = "用户账号id")
+    // @ExcelProperty("用户账号id")
     private Long userId;
 
-    @Schema(description = "部门id", example = "23009")
-    @ExcelProperty("部门id")
+    @Schema(description = "部门id")
+    // @ExcelProperty("部门id")
     private Long deptId;
 
-    @Schema(description = "部门名称", example = "部门A")
+    @Schema(description = "部门名称")
     @ExcelProperty("部门名称")
     private String deptName;
 
     @Schema(description = "员工职位id")
-    @ExcelProperty("员工职位id")
+    // @ExcelProperty("员工职位id")
     private Long postId;
 
     @Schema(description = "员工职位")
     @ExcelProperty("员工职位")
     private String position;
 
+    @Schema(description = "手机号")
+    @ExcelProperty("手机号")
+    private String employeePhone;
+
     @Schema(description = "用印标题")
     @ExcelProperty("用印标题")
     private String stampTitle;
 
-    @Schema(description = "印章id,多个用逗号分隔", example = "24683")
-    @ExcelProperty("印章id,多个用逗号分隔")
+    @Schema(description = "印章id,多个用逗号分隔")
+    // @ExcelProperty("印章id,多个用逗号分隔")
     private List<Long> stampSealId;
 
-    @Schema(description = "用印事由", example = "不喜欢")
-    @ExcelProperty("用印事由")
+    @Schema(description = "用印事由")
+    // @ExcelProperty("用印事由")
     private String reason;
 
     @Schema(description = "备注")
-    @ExcelProperty("备注")
+    // @ExcelProperty("备注")
     private String remarks;
 
-    @Schema(description = "状态(0已完成、1已作废、2已生效)", example = "1")
-    @ExcelProperty("状态(0已完成、1已作废、2已生效)")
+    @Schema(description = "状态(0已完成、1已作废、2已生效)")
+    // @ExcelProperty("状态(0已完成、1已作废、2已生效)")
     private String status;
 
-    @Schema(description = "状态名称(0已完成、1已作废)", example = "1")
-    @ExcelProperty("状态名称(0已完成、1已作废)")
+    @Schema(description = "状态名称(0已完成、1已作废)")
+    // @ExcelProperty("状态名称(0已完成、1已作废)")
     private String statusDesc;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
+    // @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "数据来源名称,0流程添加、1手动添加")
-    @ExcelProperty("数据来源名称,0流程添加、1手动添加")
+    @ExcelProperty("数据来源")
     private String infoSourceDesc;
 
-    @Schema(description = "创建员工id", example = "27984")
-    @ExcelProperty("创建员工id")
+    @Schema(description = "创建员工id")
+    // @ExcelProperty("创建员工id")
     private Long createEmployeeId;
 
-    @Schema(description = "创建员工姓名", example = "创建员工姓名")
-    @ExcelProperty("创建员工姓名")
+    @Schema(description = "创建")
+    @ExcelProperty("创建")
     private String createEmployeeName;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)

+ 23 - 15
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java

@@ -12,8 +12,8 @@ import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeeting
 import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
 import cn.iocoder.yudao.module.bpm.dal.mysql.meeting.reserve.OaMeetingReserveMapper;
 import cn.iocoder.yudao.module.bpm.enums.MeetingReserveStatusEnum;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.stereotype.Service;
@@ -47,12 +47,13 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
     private OaMeetingReserveMapper oaMeetingReserveMapper;
 
     @Resource
-    private AdminUserApi adminUserApi;
+    private EmployeeApi employeeApi;
 
     @Override
     public Long createOaMeetingReserve(OaMeetingReserveSaveReqVO createReqVO) {
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO user = adminUserApi.getUser(loginUserId);
+        // AdminUserRespDTO user = adminUserApi.getUser(loginUserId);
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
 
         // 校验时间
         String startTime = createReqVO.getStartTime();
@@ -69,21 +70,24 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
         // 校验时间是否已占用
         LambdaQueryWrapper<OaMeetingReserveDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(OaMeetingReserveDO::getRoomId, createReqVO.getRoomId())
-                .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.ENDED.getStatus())
+                // .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.ENDED.getStatus())
                 .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.CANCELED.getStatus())
                 .and(wrapper -> wrapper.eq(OaMeetingReserveDO::getStartTime, startTime)
                         .or().eq(OaMeetingReserveDO::getEndTime, endTime)
                         .or().between(OaMeetingReserveDO::getStartTime, startTime, endTime)
-                        .or().between(OaMeetingReserveDO::getEndTime, startTime, endTime));
+                        .or().between(OaMeetingReserveDO::getEndTime, startTime, endTime)
+                        .or(wrapper2 -> wrapper2.lt(OaMeetingReserveDO::getStartTime, startTime)
+                                .gt(OaMeetingReserveDO::getEndTime, endTime))
+                        );
         if (oaMeetingReserveMapper.selectCount(lambdaQueryWrapper) > 0) {
             throw exception(OA_MEETING_RESERVE_TIME_OCCUPIED);
         }
         // 插入
         OaMeetingReserveDO oaMeetingReserve = BeanUtils.toBean(createReqVO, OaMeetingReserveDO.class);
         oaMeetingReserve.setReserveUuid(IdUtil.fastSimpleUUID());
-        oaMeetingReserve.setApplyEmployeeId(user.getId());
-        oaMeetingReserve.setDeptId(user.getDeptId());
-        oaMeetingReserve.setApplyEmployeePhone(user.getMobile());
+        oaMeetingReserve.setApplyEmployeeId(loginEmployee.getId());
+        oaMeetingReserve.setDeptId(loginEmployee.getDeptId());
+        oaMeetingReserve.setApplyEmployeePhone(loginEmployee.getPhone());
         List<Long> participantsIdList = createReqVO.getParticipants();
         if (CollUtil.isNotEmpty(participantsIdList)) {
             String participants = participantsIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
@@ -102,7 +106,8 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
     @Override
     public void updateOaMeetingReserve(OaMeetingReserveSaveReqVO updateReqVO) {
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO user = adminUserApi.getUser(loginUserId);
+        // AdminUserRespDTO user = adminUserApi.getUser(loginUserId);
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
 
         // 校验存在
         OaMeetingReserveDO oaMeetingReserveDOOld = validateOaMeetingReserveExists(updateReqVO.getId());
@@ -131,22 +136,25 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
         // 校验时间是否已占用
         LambdaQueryWrapper<OaMeetingReserveDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(OaMeetingReserveDO::getRoomId, updateReqVO.getRoomId())
-                .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.ENDED.getStatus())
+                // .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.ENDED.getStatus())
                 .ne(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.CANCELED.getStatus())
                 .ne(OaMeetingReserveDO::getId, updateReqVO.getId())
                 .and(wrapper -> wrapper.eq(OaMeetingReserveDO::getStartTime, startTime)
                         .or().eq(OaMeetingReserveDO::getEndTime, endTime)
                         .or().between(OaMeetingReserveDO::getStartTime, startTime, endTime)
-                        .or().between(OaMeetingReserveDO::getEndTime, startTime, endTime));
+                        .or().between(OaMeetingReserveDO::getEndTime, startTime, endTime)
+                        .or(wrapper2 -> wrapper2.lt(OaMeetingReserveDO::getStartTime, startTime)
+                                .gt(OaMeetingReserveDO::getEndTime, endTime))
+                );
         if (oaMeetingReserveMapper.selectCount(lambdaQueryWrapper) > 0) {
             throw exception(OA_MEETING_RESERVE_TIME_OCCUPIED);
         }
 
         // 更新
         OaMeetingReserveDO updateObj = BeanUtils.toBean(updateReqVO, OaMeetingReserveDO.class);
-        updateObj.setApplyEmployeeId(user.getId());
-        updateObj.setDeptId(user.getDeptId());
-        updateObj.setApplyEmployeePhone(user.getMobile());
+        updateObj.setApplyEmployeeId(loginEmployee.getId());
+        updateObj.setDeptId(loginEmployee.getDeptId());
+        updateObj.setApplyEmployeePhone(loginEmployee.getPhone());
 
         List<Long> participantsIdList = updateReqVO.getParticipants();
         if (CollUtil.isNotEmpty(participantsIdList)) {

+ 14 - 14
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/room/OaMeetingRoomServiceImpl.java

@@ -44,13 +44,13 @@ public class OaMeetingRoomServiceImpl implements OaMeetingRoomService {
         // 插入
         OaMeetingRoomDO oaMeetingRoom = BeanUtils.toBean(createReqVO, OaMeetingRoomDO.class);
         oaMeetingRoom.setRoomUuid(IdUtil.fastSimpleUUID());
-        Long managerId = createReqVO.getManagerId();
-        if (managerId != null) {
-            AdminUserRespDTO user = adminUserApi.getUser(managerId);
-            if (user != null) {
-                oaMeetingRoom.setManagerName(user.getNickname());
-            }
-        }
+        // Long managerId = createReqVO.getManagerId();
+        // if (managerId != null) {
+        //     AdminUserRespDTO user = adminUserApi.getUser(managerId);
+        //     if (user != null) {
+        //         oaMeetingRoom.setManagerName(user.getNickname());
+        //     }
+        // }
         oaMeetingRoomMapper.insert(oaMeetingRoom);
         // 返回
         return oaMeetingRoom.getId();
@@ -62,13 +62,13 @@ public class OaMeetingRoomServiceImpl implements OaMeetingRoomService {
         validateOaMeetingRoomExists(updateReqVO.getId());
         // 更新
         OaMeetingRoomDO updateObj = BeanUtils.toBean(updateReqVO, OaMeetingRoomDO.class);
-        Long managerId = updateObj.getManagerId();
-        if (managerId != null) {
-            AdminUserRespDTO user = adminUserApi.getUser(managerId);
-            if (user != null) {
-                updateObj.setManagerName(user.getNickname());
-            }
-        }
+        // Long managerId = updateObj.getManagerId();
+        // if (managerId != null) {
+        //     AdminUserRespDTO user = adminUserApi.getUser(managerId);
+        //     if (user != null) {
+        //         updateObj.setManagerName(user.getNickname());
+        //     }
+        // }
         oaMeetingRoomMapper.updateById(updateObj);
     }
 

+ 8 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java

@@ -118,12 +118,14 @@ public class OaBusinessServiceImpl implements OaBusinessService {
             String uuid = IdUtil.fastSimpleUUID();
             oaBusiness.setBusinessId(uuid);
         }
-        oaBusiness.setEmployeeId(employee.getId());
-        oaBusiness.setEmployeeName(employee.getName());
-        oaBusiness.setEmployeePhone(employee.getPhone());
-        oaBusiness.setDeptId(employee.getDeptId());
-        oaBusiness.setPostId(employee.getPostId());
-        oaBusiness.setPosition(employee.getPosition());
+        if (employee != null) {
+            oaBusiness.setEmployeeId(employee.getId());
+            oaBusiness.setEmployeeName(employee.getName());
+            oaBusiness.setEmployeePhone(employee.getPhone());
+            oaBusiness.setDeptId(employee.getDeptId());
+            oaBusiness.setPostId(employee.getPostId());
+            oaBusiness.setPosition(employee.getPosition());
+        }
         oaBusiness.setUserId(loginUserId);
         oaBusiness.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
         oaBusiness.setInfoSource("0");

+ 39 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java

@@ -45,7 +45,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -120,12 +122,23 @@ public class OaConversionServiceImpl implements OaConversionService {
             String uuid = IdUtil.fastSimpleUUID();
             oaConversion.setConversionId(uuid);
         }
-        oaConversion.setEmployeeId(employee.getId());
-        oaConversion.setEmployeeName(employee.getName());
-        oaConversion.setEmployeePhone(employee.getPhone());
-        oaConversion.setDeptId(employee.getDeptId());
-        oaConversion.setPostId(employee.getPostId());
-        oaConversion.setPosition(employee.getPosition());
+        if (employee != null) {
+            oaConversion.setEmployeeId(employee.getId());
+            oaConversion.setEmployeeName(employee.getName());
+            oaConversion.setEmployeePhone(employee.getPhone());
+            oaConversion.setDeptId(employee.getDeptId());
+            oaConversion.setPostId(employee.getPostId());
+            oaConversion.setPosition(employee.getPosition());
+            LocalDate entryDate = employee.getEntryDate();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            if (entryDate != null) {
+                oaConversion.setEntryDate(formatter.format(entryDate));
+            }
+            LocalDate probationEndDate = employee.getProbationEndDate();
+            if (probationEndDate != null) {
+                oaConversion.setProbationEndDate(formatter.format(probationEndDate));
+            }
+        }
         oaConversion.setUserId(loginUserId);
         oaConversion.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
         oaConversion.setInfoSource("0");
@@ -179,6 +192,15 @@ public class OaConversionServiceImpl implements OaConversionService {
         oaConversion.setDeptId(employee.getDeptId());
         oaConversion.setPostId(employee.getPostId());
         oaConversion.setPosition(employee.getPosition());
+        LocalDate entryDate = employee.getEntryDate();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if (entryDate != null) {
+            oaConversion.setEntryDate(formatter.format(entryDate));
+        }
+        LocalDate probationEndDate = employee.getProbationEndDate();
+        if (probationEndDate != null) {
+            oaConversion.setProbationEndDate(formatter.format(probationEndDate));
+        }
         oaConversion.setUserId(loginUserId);
         oaConversion.setInfoSource("0");
         oaConversion.setApplyEmployeeId(loginEmployee.getId());
@@ -330,6 +352,8 @@ public class OaConversionServiceImpl implements OaConversionService {
             // 转换为DTO
             RelationsConversionCreateReqDTO conversionCreateReqDTO = BeanUtils.toBean(conversion, RelationsConversionCreateReqDTO.class);
             conversionCreateReqDTO.setStatus(0);
+            conversionCreateReqDTO.setCreatorEmployeeId(conversion.getApplyEmployeeId());
+            conversionCreateReqDTO.setCreatorEmployeeName(conversion.getApplyEmployeeName());
             conversionCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息
@@ -498,6 +522,15 @@ public class OaConversionServiceImpl implements OaConversionService {
         oaConversionNew.setDeptId(employee.getDeptId());
         oaConversionNew.setPostId(employee.getPostId());
         oaConversionNew.setPosition(employee.getPosition());
+        LocalDate entryDate = employee.getEntryDate();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if (entryDate != null) {
+            oaConversionNew.setEntryDate(formatter.format(entryDate));
+        }
+        LocalDate probationEndDate = employee.getProbationEndDate();
+        if (probationEndDate != null) {
+            oaConversionNew.setProbationEndDate(formatter.format(probationEndDate));
+        }
         oaConversionNew.setUserId(loginUserId);
         oaConversionNew.setApplyEmployeeId(loginEmployee.getId());
         oaConversionNew.setApplyEmployeeName(loginEmployee.getName());

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java

@@ -323,6 +323,8 @@ public class OaLeaveServiceImpl implements OaLeaveService {
             // 转换为DTO
             AttendanceLeaveCreateReqDTO leaveCreateReqDTO = BeanUtils.toBean(leave, AttendanceLeaveCreateReqDTO.class);
             leaveCreateReqDTO.setStatus(0);
+            leaveCreateReqDTO.setCreatorEmployeeId(leave.getApplyEmployeeId());
+            leaveCreateReqDTO.setCreatorEmployeeName(leave.getApplyEmployeeName());
             leaveCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java

@@ -322,6 +322,8 @@ public class OaOutServiceImpl implements OaOutService {
             // 转换为DTO
             AttendanceOutCreateReqDTO outCreateReqDTO = BeanUtils.toBean(out, AttendanceOutCreateReqDTO.class);
             outCreateReqDTO.setStatus(0);
+            outCreateReqDTO.setCreatorEmployeeId(out.getApplyEmployeeId());
+            outCreateReqDTO.setCreatorEmployeeName(out.getApplyEmployeeName());
             outCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息

+ 10 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/renew/OaRenewServiceImpl.java

@@ -129,12 +129,14 @@ public class OaRenewServiceImpl implements OaRenewService {
             String uuid = IdUtil.fastSimpleUUID();
             oaRenew.setRenewId(uuid);
         }
-        oaRenew.setEmployeeId(employee.getId());
-        oaRenew.setEmployeeName(employee.getName());
-        oaRenew.setEmployeePhone(employee.getPhone());
-        oaRenew.setDeptId(employee.getDeptId());
-        oaRenew.setPostId(employee.getPostId());
-        oaRenew.setPosition(employee.getPosition());
+        if (employee != null) {
+            oaRenew.setEmployeeId(employee.getId());
+            oaRenew.setEmployeeName(employee.getName());
+            oaRenew.setEmployeePhone(employee.getPhone());
+            oaRenew.setDeptId(employee.getDeptId());
+            oaRenew.setPostId(employee.getPostId());
+            oaRenew.setPosition(employee.getPosition());
+        }
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDate contractStartDate = loginEmployee.getContractStartDate();
         if (contractStartDate != null) {
@@ -365,6 +367,8 @@ public class OaRenewServiceImpl implements OaRenewService {
             // 转换为DTO
             RelationsRenewCreateReqDTO renewCreateReqDTO = BeanUtils.toBean(renew, RelationsRenewCreateReqDTO.class);
             renewCreateReqDTO.setStatus(0);
+            renewCreateReqDTO.setCreatorEmployeeId(renew.getApplyEmployeeId());
+            renewCreateReqDTO.setCreatorEmployeeName(renew.getApplyEmployeeName());
             renewCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息

+ 1 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/stamp/OaStampServiceImpl.java

@@ -339,6 +339,7 @@ public class OaStampServiceImpl implements OaStampService {
             stampInfoDO.setUpdater(null);
             stampInfoDO.setUpdateTime(null);
             stampInfoDO.setStatus("0");
+            stampInfoDO.setCreateEmployeeId(stamp.getApplyEmployeeId());
             stampInfoDO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息

+ 14 - 10
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/turnover/OaTurnoverServiceImpl.java

@@ -122,16 +122,18 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
             String uuid = IdUtil.fastSimpleUUID();
             oaTurnover.setTurnoverId(uuid);
         }
-        oaTurnover.setEmployeeId(employee.getId());
-        oaTurnover.setEmployeeName(employee.getName());
-        oaTurnover.setEmployeePhone(employee.getPhone());
-        oaTurnover.setDeptId(employee.getDeptId());
-        oaTurnover.setPostId(employee.getPostId());
-        oaTurnover.setPosition(employee.getPosition());
-        LocalDate entryDate = employee.getEntryDate();
-        if (entryDate != null) {
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            oaTurnover.setEntryDate(entryDate.format(formatter));
+        if (employee != null) {
+            oaTurnover.setEmployeeId(employee.getId());
+            oaTurnover.setEmployeeName(employee.getName());
+            oaTurnover.setEmployeePhone(employee.getPhone());
+            oaTurnover.setDeptId(employee.getDeptId());
+            oaTurnover.setPostId(employee.getPostId());
+            oaTurnover.setPosition(employee.getPosition());
+            LocalDate entryDate = employee.getEntryDate();
+            if (entryDate != null) {
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                oaTurnover.setEntryDate(entryDate.format(formatter));
+            }
         }
         oaTurnover.setUserId(loginUserId);
         oaTurnover.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
@@ -340,6 +342,8 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
             // 转换为DTO
             RelationsTurnoverCreateReqDTO turnoverCreateReqDTO = BeanUtils.toBean(turnover, RelationsTurnoverCreateReqDTO.class);
             turnoverCreateReqDTO.setStatus(0);
+            turnoverCreateReqDTO.setCreatorEmployeeId(turnover.getApplyEmployeeId());
+            turnoverCreateReqDTO.setCreatorEmployeeName(turnover.getApplyEmployeeName());
             turnoverCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 保存单据信息

+ 6 - 0
yudao-module-personnel/yudao-module-employee-api/src/main/java/cn/iocoder/yudao/module/employee/api/dto/EmployeeRespDTO.java

@@ -79,6 +79,12 @@ public class EmployeeRespDTO {
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate entryDate;
 
+    /**
+     * 试用期到期时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate probationEndDate;
+
     /**
      * 年假基准天数
      */