Browse Source

会议室列别magic-api

大数据与最优化研究所 2 weeks ago
parent
commit
ecaa9e9a56

+ 12 - 2
src/main/java/com/xjrsoft/module/oa/controller/WfMeetingApplyController.java

@@ -2,13 +2,11 @@ package com.xjrsoft.module.oa.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.oa.dto.*;
-import com.xjrsoft.module.oa.entity.MeetingConfereeOpinion;
 import com.xjrsoft.module.oa.entity.WfMeetingApply;
 import com.xjrsoft.module.oa.service.IWfMeetingApplyService;
 import com.xjrsoft.module.oa.vo.*;
@@ -53,6 +51,18 @@ public class WfMeetingApplyController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/info_in_workflow")
+    @ApiOperation(value="按照流程查看详情")
+    @SaCheckPermission("wfmeetingapply:detail")
+    @XjrLog(value = "根据id查询信息")
+    public RT<WfMeetingApplyInWorkflowVo> infoInWorkflow(@RequestParam Long id){
+        WfMeetingApplyInWorkflowVo wfMeetingApplyInWorkflowVo = wfMeetingApplyService.infoInWorkflow(id);
+        if (wfMeetingApplyInWorkflowVo == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(wfMeetingApplyInWorkflowVo);
+    }
+
     @GetMapping(value = "/meeting_conferee_list")
     @ApiOperation(value="参会人员列表(不分页)")
     @SaCheckPermission("wfmeetingapply:detail")

+ 1 - 2
src/main/java/com/xjrsoft/module/oa/dto/MeetingRoomListDto.java

@@ -22,8 +22,7 @@ public class MeetingRoomListDto {
      * 会议日期
      */
     @ApiModelProperty("会议日期")
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private LocalDate meetingApplyDate;
+    private String meetingApplyDate;
     /**
      * 会议开始时间
      */

+ 3 - 4
src/main/java/com/xjrsoft/module/oa/service/IWfMeetingApplyService.java

@@ -7,10 +7,7 @@ import com.xjrsoft.module.oa.dto.MeetingConfereeOpinionListDto;
 import com.xjrsoft.module.oa.dto.MeetingRoomListDto;
 import com.xjrsoft.module.oa.dto.WfMeetingApplyPageDto;
 import com.xjrsoft.module.oa.entity.WfMeetingApply;
-import com.xjrsoft.module.oa.vo.MeetingConfereeListVo;
-import com.xjrsoft.module.oa.vo.MeetingConfereeOpinionListVo;
-import com.xjrsoft.module.oa.vo.MeetingRoomListVo;
-import com.xjrsoft.module.oa.vo.WfMeetingApplyPageVo;
+import com.xjrsoft.module.oa.vo.*;
 
 import java.util.List;
 
@@ -27,6 +24,8 @@ public interface IWfMeetingApplyService extends MPJBaseService<WfMeetingApply> {
 
     IPage<WfMeetingApplyPageVo> pageRabAndHand(WfMeetingApplyPageDto dto);
 
+    WfMeetingApplyInWorkflowVo infoInWorkflow(Long id);
+
     List<MeetingConfereeListVo> listMeetingConferee(MeetingConfereeListDto dto);
 
     List<MeetingConfereeOpinionListVo> listMeetingConfereeOpinion(MeetingConfereeOpinionListDto dto);

+ 39 - 7
src/main/java/com/xjrsoft/module/oa/service/impl/WfMeetingApplyServiceImpl.java

@@ -45,10 +45,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -78,7 +75,8 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
     @Override
     public List<MeetingRoomListVo> listMeetingRoom(MeetingRoomListDto dto) {
         // 处理时间
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+        LocalDate meetingApplyDate = LocalDate.parse(dto.getMeetingApplyDate());
+
         LocalTime startTime =  LocalTime.parse(dto.getMeetingApplyS());
         LocalTime endTime =  LocalTime.parse(dto.getMeetingApplyE());
 
@@ -95,9 +93,9 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
                 ;
         List<MeetingRoomListVo> result = meetingRoomMapper.selectJoinList(MeetingRoomListVo.class, meetingRoomMPJLambdaWrapper);
 
-        // 获取会议申请日期已经预约的会议,排除已经撤销的
+        // 获取会议申请日期已经预约的会议
         List<WfMeetingApply> wfMeetingApplyList = this.list(Wrappers.lambdaQuery(WfMeetingApply.class)
-                .eq(WfMeetingApply::getMeetingApplyDate, dto.getMeetingApplyDate())
+                .eq(WfMeetingApply::getMeetingApplyDate, meetingApplyDate)
                 .eq(WfMeetingApply::getMeetingApplyFormat, MeetingTypeEnum.HMT0002.getCode())// 线下会议
                 .ne(WfMeetingApply::getMeetingStatus, 1)
         );
@@ -136,6 +134,9 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
                 vo.setStatus(reservationRoom.getStatus());
             }
         }
+
+        // 根据可用排序
+        result.sort(Comparator.comparingInt(MeetingRoomListVo::getStatus));
         return result;
     }
 
@@ -206,6 +207,13 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
 
         IPage<WfMeetingApplyPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), WfMeetingApplyPageVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
 
+        List<String> ids = page.getRecords().stream()
+                .map(WfMeetingApplyPageVo::getId)
+                .collect(Collectors.toList());
+
+        // 根据数据主键id获取对应流程信息
+
+
         // 判断会议状态
         for (WfMeetingApplyPageVo vo : page.getRecords()){
             if (vo.getMeetingStatus() != 1) {
@@ -228,6 +236,30 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
         return page;
     }
 
+    @Override
+    public WfMeetingApplyInWorkflowVo infoInWorkflow(Long id) {
+        MPJLambdaWrapper<WfMeetingApply> wfMeetingApplyPageVoMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        wfMeetingApplyPageVoMPJLambdaWrapper
+                .disableSubLogicDel()
+                .select(WfMeetingApply::getId)
+                .select(WfMeetingApply.class, x -> VoToColumnUtil.fieldsToColumns(WfMeetingApplyInWorkflowVo.class).contains(x.getProperty()))
+                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, WfMeetingApply::getMeetingApplyFormat,
+                        wrapper -> wrapper
+                                .selectAs(DictionaryDetail::getName, WfMeetingApplyInWorkflowVo::getMeetingApplyFormatCn)
+                )
+                .leftJoin(MeetingRoom.class, MeetingRoom::getId, WfMeetingApply::getMeetingRoomId,
+                        wrapper -> wrapper
+                                .selectAs(MeetingRoom::getName, WfMeetingApplyInWorkflowVo::getMeetingRoomIdCn)
+                )
+                .leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getMeetingApplyHost,
+                        wrapper -> wrapper
+                                .selectAs(XjrUser::getName, WfMeetingApplyInWorkflowVo::getMeetingApplyHostCn)
+                )
+                .eq(WfMeetingApply::getId, id)
+        ;
+        return null;
+    }
+
     @Override
     public List<MeetingConfereeListVo> listMeetingConferee(MeetingConfereeListDto dto) {
         MPJLambdaWrapper<MeetingConferee> meetingConfereeMPJLambdaWrapper = new MPJLambdaWrapper<>();

+ 134 - 0
src/main/java/com/xjrsoft/module/oa/vo/WfMeetingApplyInWorkflowVo.java

@@ -0,0 +1,134 @@
+package com.xjrsoft.module.oa.vo;
+
+import com.xjrsoft.module.ledger.vo.WorkflowRecordVo;
+import com.xjrsoft.module.system.entity.File;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 表单出参
+* @Author phoenix
+* @Date: 2025-03-26
+* @Version 1.0
+*/
+@Data
+public class WfMeetingApplyInWorkflowVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 会议日期
+    */
+    @ApiModelProperty("会议日期")
+    private Date meetingApplyDate;
+    /**
+    * 会议开始时间
+    */
+    @ApiModelProperty("会议开始时间")
+    private LocalTime meetingApplyS;
+    /**
+    * 会议结束时间
+    */
+    @ApiModelProperty("会议结束时间")
+    private LocalTime meetingApplyE;
+    /**
+    * 会议形式(xjr_dictionary_item(meeting_type))
+    */
+    @ApiModelProperty("会议形式(xjr_dictionary_item(meeting_type))")
+    private String meetingApplyFormat;
+    /**
+     * 会议形式(xjr_dictionary_item(meeting_type))
+     */
+    @ApiModelProperty("会议形式(xjr_dictionary_item(meeting_type))")
+    private String meetingApplyFormatCn;
+    /**
+    * 会议室管理主键id(meeting_room)
+    */
+    @ApiModelProperty("会议室管理主键id(meeting_room)")
+    private Long meetingRoomId;
+    /**
+     * 会议室管理主键id(meeting_room)
+     */
+    @ApiModelProperty("会议室管理主键id(meeting_room)")
+    private Long meetingRoomIdCn;
+    /**
+    * 线上会议链接
+    */
+    @ApiModelProperty("线上会议链接")
+    private String meetingApplyUrl;
+    /**
+    * 参会人员
+    */
+    @ApiModelProperty("参会人员")
+    private String meetingApplyParticipants;
+    /**
+     * 参会人员
+     */
+    @ApiModelProperty("参会人员")
+    private String meetingApplyParticipantsCn;
+    /**
+    * 主持人
+    */
+    @ApiModelProperty("主持人")
+    private String meetingApplyHost;
+    /**
+     * 主持人
+     */
+    @ApiModelProperty("主持人")
+    private String meetingApplyHostCn;
+    /**
+    * 会议主题
+    */
+    @ApiModelProperty("会议主题")
+    private String meetingApplyTheme;
+    /**
+    * 会议议题
+    */
+    @ApiModelProperty("会议议题")
+    private String meetingApplyTopics;
+    /**
+    * 是否准备座牌、会标(1:是,0:否)
+    */
+    @ApiModelProperty("是否准备座牌、会标(1:是,0:否)")
+    private Integer isMonogram;
+    /**
+    * 会标主题
+    */
+    @ApiModelProperty("会标主题")
+    private String monogramTheme;
+    /**
+    * 会议纪要
+    */
+    @ApiModelProperty("会议纪要")
+    private String meetingSummary;
+    /**
+    * 会前资料文件上传主键id
+    */
+    @ApiModelProperty("会前资料文件上传主键id")
+    private Long preMeetingInfoFileId;
+
+    @ApiModelProperty("附件列表")
+    private List<File> fileInfos;
+
+    /**
+    * 会议状态(0:未开始 1:已经撤销,2:已结束)
+    */
+    @ApiModelProperty("会议状态(0:未开始 1:已经撤销,2:已结束)")
+    private Integer meetingStatus;
+
+    @ApiModelProperty("流程信息")
+    private List<WorkflowRecordVo> workflowRecordList;
+
+    @ApiModelProperty("流程id")
+    private String processId;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+}

+ 5 - 0
src/main/java/com/xjrsoft/module/oa/vo/WfMeetingApplyPageVo.java

@@ -96,4 +96,9 @@ public class WfMeetingApplyPageVo {
     @ApiModelProperty("会议状态(0:未开始 1:已经撤销,2:已结束,3:进行中)")
     private Integer meetingStatus;
 
+    @ApiModelProperty("流程主键id")
+    private Long processId;
+
+    @ApiModelProperty("任务主键id")
+    private Long taskId;
 }