Browse Source

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 year ago
parent
commit
6695561f9f
14 changed files with 263 additions and 7 deletions
  1. 32 2
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingFileController.java
  2. 19 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingInfoController.java
  3. 27 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/SignOnOutRequestVO.java
  4. 20 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/TaskController.java
  5. 5 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingAttendee.java
  6. 4 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingFile.java
  7. 7 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingFileService.java
  8. 5 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingInfoService.java
  9. 40 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingFileServiceImpl.java
  10. 48 5
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingInfoServiceImpl.java
  11. 26 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingFileListVO.java
  12. 28 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingFileRequestVO.java
  13. 1 0
      service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingAttendeeMapper.xml
  14. 1 0
      service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingFileMapper.xml

+ 32 - 2
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingFileController.java

@@ -1,7 +1,14 @@
 package com.usky.meeting.controller.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.meeting.domain.MeetingFile;
+import com.usky.meeting.service.MeetingFileService;
+import com.usky.meeting.service.vo.MeetingFileListVO;
+import com.usky.meeting.service.vo.MeetingFileRequestVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
 
@@ -13,9 +20,32 @@ import org.springframework.stereotype.Controller;
  * @author zyj
  * @since 2024-03-08
  */
-@Controller
+@RestController
 @RequestMapping("/meetingFile")
 public class MeetingFileController {
+    @Autowired
+    private MeetingFileService meetingFileService;
+
+    /**
+     * 添加会议文件
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("insertMeetingFile")
+    public ApiResult<Void> insertMeetingFile(@RequestBody MeetingFileRequestVO requestVO){
+        meetingFileService.insertMeetingFile(requestVO);
+        return ApiResult.success();
+    }
+
+    /**
+     * 查询会议文件
+     * @param meetingFileListVO
+     * @return
+     */
+    @PostMapping("meetingFileList")
+    public ApiResult<CommonPage<MeetingFile>> meetingFileList(@RequestBody MeetingFileListVO meetingFileListVO){
+        return ApiResult.success(meetingFileService.meetingFileList(meetingFileListVO));
+    }
 
 }
 

+ 19 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingInfoController.java

@@ -84,5 +84,24 @@ public class MeetingInfoController {
         return ApiResult.success(meetingInfoService.meetingSignList(meetingId));
     }
 
+    /**
+     * 人员签到/人员签退
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("signOnOut")
+    public ApiResult<Void> signOnOut(@RequestBody SignOnOutRequestVO requestVO){
+        meetingInfoService.signOnOut(requestVO);
+        return ApiResult.success();
+    }
+
+
+
 }
 
+
+
+
+
+
+

+ 27 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/SignOnOutRequestVO.java

@@ -0,0 +1,27 @@
+package com.usky.meeting.controller.web;
+
+import lombok.Data;
+
+@Data
+public class SignOnOutRequestVO {
+    /**
+     * 会议Id
+     */
+    private Long meetingId;
+
+    /**
+     * 参会人Id
+     */
+    private Long userId;
+
+    /**
+     * 签到签退类别(0.签到 1.签退)
+     */
+    private Integer mothodType;
+
+    /**
+     * 签到签退方式(0.人工 1.人脸)
+     */
+    private Integer signType;
+
+}

+ 20 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/TaskController.java

@@ -0,0 +1,20 @@
+package com.usky.meeting.controller.web;
+
+import com.usky.meeting.service.MeetingInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@EnableScheduling
+@Component
+public class TaskController {
+    @Autowired
+    private MeetingInfoService meetingInfoService;
+
+    @Scheduled(cron = "0 1,31 * * * ? ") //每小时第1分钟和第31分钟各执行一次
+    public void task(){
+        System.out.println(Thread.currentThread().getName()+"定时任务执行中");
+        meetingInfoService.updateMeetingInfoStatus();
+    }
+}

+ 5 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingAttendee.java

@@ -79,5 +79,10 @@ public class MeetingAttendee implements Serializable {
      */
     private Integer tenantId;
 
+    /**
+     * 签退方式(0.人工签退 1.人脸签退)
+     */
+    private Integer signOutType;
+
 
 }

+ 4 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingFile.java

@@ -68,5 +68,9 @@ public class MeetingFile implements Serializable {
      */
     private Integer tenantId;
 
+    /**
+     * 文件名称
+     */
+    private String fileName;
 
 }

+ 7 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingFileService.java

@@ -1,7 +1,11 @@
 package com.usky.meeting.service;
 
+import com.usky.common.core.bean.CommonPage;
 import com.usky.meeting.domain.MeetingFile;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.meeting.service.vo.MeetingFileListVO;
+import com.usky.meeting.service.vo.MeetingFileRequestVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -13,4 +17,7 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface MeetingFileService extends CrudService<MeetingFile> {
 
+    void insertMeetingFile(MeetingFileRequestVO requestVO);
+
+    CommonPage<MeetingFile> meetingFileList(MeetingFileListVO meetingFileListVO);
 }

+ 5 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingInfoService.java

@@ -2,6 +2,7 @@ package com.usky.meeting.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.meeting.controller.web.SignOnOutRequestVO;
 import com.usky.meeting.domain.MeetingInfo;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.meeting.service.dto.DmMeetingDto;
@@ -59,4 +60,8 @@ public interface MeetingInfoService extends CrudService<MeetingInfo> {
     CommonPage<MeetingInfo> myMeetingList(MyMeetingInfoRequestVO requestVO);
 
     List<Map<String,Object>> meetingSignList(Long meetingId);
+
+    void signOnOut(SignOnOutRequestVO requestVO);
+
+    void updateMeetingInfoStatus();
 }

+ 40 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingFileServiceImpl.java

@@ -1,11 +1,22 @@
 package com.usky.meeting.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.meeting.domain.MeetingFile;
 import com.usky.meeting.mapper.MeetingFileMapper;
 import com.usky.meeting.service.MeetingFileService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.meeting.service.vo.MeetingFileListVO;
+import com.usky.meeting.service.vo.MeetingFileRequestVO;
+import org.springframework.beans.factory.wiring.BeanWiringInfo;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 会议文件 服务实现类
@@ -17,4 +28,33 @@ import org.springframework.stereotype.Service;
 @Service
 public class MeetingFileServiceImpl extends AbstractCrudService<MeetingFileMapper, MeetingFile> implements MeetingFileService {
 
+    @Override
+    public void insertMeetingFile(MeetingFileRequestVO requestVO){
+        MeetingFile meetingFile = new MeetingFile();
+        meetingFile.setMeetingId(requestVO.getMeetingId());
+        meetingFile.setFileUrl(requestVO.getFileUrl());
+        meetingFile.setFileType(requestVO.getFileType());
+        meetingFile.setUploadUser(SecurityUtils.getUsername());
+        meetingFile.setUploadTime(LocalDateTime.now());
+        meetingFile.setTenantId(SecurityUtils.getTenantId());
+        meetingFile.setFileName(requestVO.getFileName());
+
+        this.save(meetingFile);
+    }
+
+    @Override
+    public CommonPage<MeetingFile> meetingFileList(MeetingFileListVO meetingFileListVO){
+        Integer current = meetingFileListVO.getCurrent();
+        Integer size = meetingFileListVO.getSize();
+
+        Page<MeetingFile> page = new Page<>(current,size);
+
+        LambdaQueryWrapper<MeetingFile> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(null != meetingFileListVO.getMeetingId(),MeetingFile::getMeetingId,meetingFileListVO.getMeetingId())
+                .like(StringUtils.isNotBlank(meetingFileListVO.getFileName()),MeetingFile::getFileName,meetingFileListVO.getFileName())
+                .orderByDesc(MeetingFile::getFileId);
+        page = this.page(page,queryWrapper);
+
+        return new CommonPage<>(page.getRecords(),page.getTotal(),size,current);
+    }
 }

+ 48 - 5
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingInfoServiceImpl.java

@@ -12,6 +12,7 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.profile.DefaultProfile;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -21,6 +22,7 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.DateUtils;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.meeting.controller.web.SignOnOutRequestVO;
 import com.usky.meeting.domain.*;
 import com.usky.meeting.mapper.MeetingFloorMapper;
 import com.usky.meeting.mapper.MeetingInfoMapper;
@@ -456,22 +458,63 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
         return signList;
     }
 
+    @Override
+    public void signOnOut(SignOnOutRequestVO requestVO){
+        LambdaQueryWrapper<MeetingAttendee> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(MeetingAttendee::getMeetingId,requestVO.getMeetingId())
+                .eq(MeetingAttendee::getUserId,requestVO.getUserId())
+                .eq(MeetingAttendee::getTenantId,SecurityUtils.getTenantId());
+        MeetingAttendee one = meetingAttendeeService.getOne(queryWrapper);
+        //签到签退类别(0.签到 1.签退)
+        if(requestVO.getMothodType().equals(0)){
+            one.setIsSign(1);
+            one.setSignDate(LocalDateTime.now());
+            //签到签退方式(0.人工 1.人脸)
+            one.setSignType(requestVO.getSignType());
+
+        }else{
+            one.setIsSignOut(1);
+            one.setSignOutDate(LocalDateTime.now());
+            one.setSignOutType(requestVO.getSignType());
+        }
+        meetingAttendeeService.updateById(one);
+
+    }
+
+    //UPDATE meeting_info SET meeting_status = 0 WHERE is_cancel = 0 AND meeting_status != 2 AND start_date > SYSDATE;
+    //UPDATE meeting_info SET meeting_status = 1 WHERE is_cancel = 0 AND meeting_status != 2 AND start_date <= SYSDATE AND end_date >= SYSDATE;
+    //UPDATE meeting_info SET meeting_status = 2 WHERE is_cancel = 0 AND meeting_status != 2 AND end_date < SYSDATE;
+    @Override
+    public void updateMeetingInfoStatus(){
+        UpdateWrapper<MeetingInfo> updateWrapper = Wrappers.update();
+        updateWrapper.set("meeting_status",1)
+                .eq("is_cancel",0)
+                .ne("meeting_status",2)
+                .le("start_date",LocalDateTime.now())
+                .ge("end_date",LocalDateTime.now());
+        this.update(updateWrapper);
+        UpdateWrapper<MeetingInfo> updateWrapper1 = Wrappers.update();
+        updateWrapper1.set("meeting_status",2)
+                .eq("is_cancel",0)
+                .ne("meeting_status",2)
+                .lt("end_date",LocalDateTime.now());
+        this.update(updateWrapper1);
+    }
+
     public void send(DmMeetingDto resources) throws ClientException {
         if (StringUtils.isNotBlank(resources.getSendType())) {
             if (resources.getSendType().equals("短信")) {
                 for (SysUser dmUser : resources.getUsers()) {
                     SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     String sj = resources.getStartDate();
-                    String sendContent2 = "您已受邀参加会议:" + resources.getMeetingName() + ",该会议将于" + sj + " 在" + resources.getRoomName() + "举行。请您及时准备相关参会材料,并请准时出席。";
-
                     DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", "LTAI5tH3VvRL5BUkovCokHJX", "SaaWUouNqvcA0C746gcNOH9m6SRYN4");
                     IAcsClient client = new DefaultAcsClient(profile);
                     SendSmsRequest request = new SendSmsRequest();
                     request.setPhoneNumbers(dmUser.getPhonenumber());//接收短信的手机号码
                     request.setSignName("上海永天科技股份有限公司");//短信签名名称
-                    request.setTemplateCode("SMS_463791105");//短信模板CODE
-                    request.setTemplateParam("{\"deviceName\":\""+dmUser.getNickName()+"\","+"\"time\":\""+sj+"\","+
-                            "\"alarmType\":\""+"短信"+"\","+"\"alarmContent\":\""+sendContent2+"\"}");
+                    request.setTemplateCode("SMS_465362899");//短信模板CODE
+                    request.setTemplateParam("{\"meet\":\""+resources.getMeetingName()+"\","+"\"time\":\""+resources.getStartDate()+"\","+
+                            "\"room\":\""+resources.getRoomName()+"\"}");
                     SendSmsResponse code = client.getAcsResponse(request);
                     if(code.getCode() != null && code.getCode().equals("OK")) {
                         //请求成功

+ 26 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingFileListVO.java

@@ -0,0 +1,26 @@
+package com.usky.meeting.service.vo;
+
+import lombok.Data;
+
+@Data
+public class MeetingFileListVO {
+
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 会议Id
+     */
+    private Long meetingId;
+
+    /**
+     * 文件名称
+     */
+    private String fileName;
+}

+ 28 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingFileRequestVO.java

@@ -0,0 +1,28 @@
+package com.usky.meeting.service.vo;
+
+import lombok.Data;
+
+@Data
+public class MeetingFileRequestVO {
+
+    /**
+     * 会议Id
+     */
+    private Long meetingId;
+
+    /**
+     * 文件存储地址
+     */
+    private String fileUrl;
+
+    /**
+     * 文件类型(0-会议所需文件,1-会议记录文件,2-高层会议文件)
+     */
+    private Integer fileType;
+
+    /**
+     * 文件名称
+     */
+    private String fileName;
+
+}

+ 1 - 0
service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingAttendeeMapper.xml

@@ -14,6 +14,7 @@
         <result column="sign_type" property="signType" />
         <result column="dept_id" property="deptId" />
         <result column="tenant_id" property="tenantId" />
+        <result column="sign_out_type" property="signOutType" />
     </resultMap>
 
 </mapper>

+ 1 - 0
service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingFileMapper.xml

@@ -13,6 +13,7 @@
         <result column="upload_time" property="uploadTime" />
         <result column="dept_id" property="deptId" />
         <result column="tenant_id" property="tenantId" />
+        <result column="file_name" property="fileName" />
     </resultMap>
 
 </mapper>