瀏覽代碼

网盘,日报问题修复

yzc 2 年之前
父節點
當前提交
7f604118b5

+ 70 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/netdisk/NetdiskController.java

@@ -0,0 +1,70 @@
+package com.fjhx.oa.controller.netdisk;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.netdisk.vo.NetdiskVo;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskSelectDto;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.netdisk.NetdiskService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 网盘 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@RestController
+@RequestMapping("/netdisk")
+public class NetdiskController {
+
+    @Autowired
+    private NetdiskService netdiskService;
+
+    /**
+     * 网盘分页
+     */
+    @PostMapping("/page")
+    public Page<NetdiskVo> page(@RequestBody NetdiskSelectDto dto) {
+        return netdiskService.getPage(dto);
+    }
+
+    /**
+     * 网盘明细
+     */
+    @PostMapping("/detail")
+    public NetdiskVo detail(@RequestBody BaseSelectDto dto) {
+        return netdiskService.detail(dto.getId());
+    }
+
+    /**
+     * 网盘新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody NetdiskDto netdiskDto) {
+        netdiskService.add(netdiskDto);
+    }
+
+    /**
+     * 网盘编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody NetdiskDto netdiskDto) {
+        netdiskService.edit(netdiskDto);
+    }
+
+    /**
+     * 网盘删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody List<Long> ids) {
+        netdiskService.delete(ids);
+    }
+
+}

+ 10 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportSelectDto.java

@@ -1,9 +1,12 @@
 package com.fjhx.oa.entity.daily.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 日报列表查询入参实体
  *
@@ -17,4 +20,11 @@ public class DailyReportSelectDto extends BaseSelectDto {
     /**发送者id*/
     private Long senderId;
 
+    /**日期过滤*/
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    private Date date;
+
+    /**过滤类型 1为我发出的日报 2为我收到的日报*/
+    private Integer type;
+
 }

+ 4 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportVo.java

@@ -41,5 +41,9 @@ public class DailyReportVo extends DailyReport {
      * 今日发送日报的数量
      */
     private Long quantitySentToday;
+    /**周几*/
+    private Integer week;
+    /**创建日期*/
+    private String date;
 
 }

+ 23 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/netdisk/dto/NetdiskDto.java

@@ -0,0 +1,23 @@
+package com.fjhx.oa.entity.netdisk.dto;
+
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.oa.entity.netdisk.po.Netdisk;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 网盘新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Getter
+@Setter
+public class NetdiskDto extends Netdisk {
+
+    /**上传文件列表*/
+    List<ObsFile> fileList;
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/netdisk/dto/NetdiskSelectDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.netdisk.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 网盘列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Getter
+@Setter
+public class NetdiskSelectDto extends BaseSelectDto {
+
+    /**
+     * 父文件夹id
+     */
+    private Long parentFolderId;
+
+}

+ 37 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/netdisk/po/Netdisk.java

@@ -0,0 +1,37 @@
+package com.fjhx.oa.entity.netdisk.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 网盘
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Getter
+@Setter
+@TableName("netdisk")
+public class Netdisk extends BasePo {
+
+    /**
+     * 类型 1为文件夹 2为文件
+     */
+    private Integer type;
+
+    /**
+     * 父文件夹id
+     */
+    private Long parentFolderId;
+
+    /**
+     * 文件/文件夹名称
+     */
+    private String name;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/netdisk/vo/NetdiskVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.netdisk.vo;
+
+import com.fjhx.oa.entity.netdisk.po.Netdisk;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 网盘列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Getter
+@Setter
+public class NetdiskVo extends Netdisk {
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/netdisk/NetdiskMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.netdisk;
+
+import com.fjhx.oa.entity.netdisk.po.Netdisk;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.netdisk.vo.NetdiskVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 网盘 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+public interface NetdiskMapper extends BaseMapper<Netdisk> {
+
+    /**
+     * 网盘分页
+     */
+    Page<NetdiskVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Netdisk> wrapper);
+
+}

+ 25 - 11
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java

@@ -1,6 +1,5 @@
 package com.fjhx.oa.service.daily.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -23,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -41,20 +41,34 @@ import java.util.stream.Collectors;
 @DS(SourceConstant.OA)
 @Service
 public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, DailyReport> implements DailyReportService {
+    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
     @Autowired
     DailyReportDetailsService dailyReportDetailsService;
 
     @Override
     public Page<DailyReportVo> getPage(DailyReportSelectDto dto) {
         IWrapper<DailyReport> wrapper = getWrapper();
-        wrapper.orderByDesc("dr", DailyReport::getId);
+        wrapper.orderByDesc("date");
         Long userid = SecurityUtils.getUserId();
-        wrapper.eq("drd",DailyReportDetails::getRecipientId,userid);
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getSenderId()),"dr.create_user",dto.getSenderId());
-        if(ObjectUtil.isNotEmpty(dto.getKeyword())){
-            wrapper.and(wrapper1->wrapper1.like(DailyReport::getCompletedWork,dto.getKeyword())
-                    .or().like(DailyReport::getUnfinishedWork,dto.getKeyword())
-                    .or().like(DailyReport::getIsVisibleToRecipient,dto.getKeyword()));
+        wrapper.eq("drd", DailyReportDetails::getRecipientId, userid);
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getSenderId()), "dr.create_user", dto.getSenderId());
+        if(ObjectUtil.isNotEmpty(dto.getDate())) {
+            wrapper.apply("date_format(dr.create_time,'%Y-%m-%d') = date_format('" + sdf.format(dto.getDate()) + "','%Y-%m-%d')");
+        }
+        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(wrapper1 -> wrapper1.like(DailyReport::getCompletedWork, dto.getKeyword())
+                    .or().like(DailyReport::getUnfinishedWork, dto.getKeyword())
+                    .or().like(DailyReport::getIsVisibleToRecipient, dto.getKeyword()));
+        }
+        if(ObjectUtil.isNotEmpty(dto.getType())) {
+            if (dto.getType() == 1) {
+                //过滤我发出的日报
+                wrapper.eq("dr.create_user", userid);
+            } else if (dto.getType() == 2) {
+                //过滤我收到的日报
+                wrapper.ne("dr.create_user", userid);
+            }
         }
         Page<DailyReportVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         UserUtil.assignmentNickName(page.getRecords(), DailyReport::getCreateUser, DailyReportVo::setUserName);
@@ -69,7 +83,7 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         //添加已读记录
         Long userid = SecurityUtils.getUserId();
         DailyReportDetails dailyReportDetails = dailyReportDetailsService.getOne(q -> q.eq(DailyReportDetails::getDailyReportId, id).eq(DailyReportDetails::getRecipientId, userid));
-        if(ObjectUtil.isNotEmpty(dailyReportDetails)) {
+        if (ObjectUtil.isNotEmpty(dailyReportDetails)) {
             dailyReportDetails.setIsRead(1);
             dailyReportDetailsService.updateById(dailyReportDetails);
         }
@@ -134,7 +148,7 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         long receivedQuantity = dailyReportDetailsService.count(q -> q.eq(DailyReportDetails::getRecipientId, SecurityUtils.getUserId()));
         IWrapper<DailyReport> wrapper = getWrapper();
         wrapper.eq(DailyReport::getCreateUser, SecurityUtils.getUserId());
-        wrapper.eq("(date( create_time ) = curdate())",1);
+        wrapper.eq("(date( create_time ) = curdate())", 1);
         long quantitySentToday = count(wrapper);
         DailyReportVo dailyReportVo = new DailyReportVo();
         dailyReportVo.setQuantitySent(quantitySent);
@@ -148,7 +162,7 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         String username = SecurityUtils.getUsername();
         Map<String, Object> msgMap = new HashMap<>();
         msgMap.put("businessId", id);
-        msgMap.put("msg", String.format("%s给你分享了日报",username));
+        msgMap.put("msg", String.format("%s给你分享了日报", username));
         WebSocketServer.sendInfo(toUserId, 1, msgMap);
     }
 

+ 48 - 0
hx-oa/src/main/java/com/fjhx/oa/service/netdisk/NetdiskService.java

@@ -0,0 +1,48 @@
+package com.fjhx.oa.service.netdisk;
+
+import com.fjhx.oa.entity.netdisk.po.Netdisk;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.netdisk.vo.NetdiskVo;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskSelectDto;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 网盘 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+public interface NetdiskService extends BaseService<Netdisk> {
+
+    /**
+     * 网盘分页
+     */
+    Page<NetdiskVo> getPage(NetdiskSelectDto dto);
+
+    /**
+     * 网盘明细
+     */
+    NetdiskVo detail(Long id);
+
+    /**
+     * 网盘新增
+     */
+    void add(NetdiskDto netdiskDto);
+
+    /**
+     * 网盘编辑
+     */
+    void edit(NetdiskDto netdiskDto);
+
+    /**
+     * 网盘删除
+     */
+    void delete(List<Long> ids);
+
+}

+ 136 - 0
hx-oa/src/main/java/com/fjhx/oa/service/netdisk/impl/NetdiskServiceImpl.java

@@ -0,0 +1,136 @@
+package com.fjhx.oa.service.netdisk.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.file.service.FileInfoService;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskDto;
+import com.fjhx.oa.entity.netdisk.dto.NetdiskSelectDto;
+import com.fjhx.oa.entity.netdisk.po.Netdisk;
+import com.fjhx.oa.entity.netdisk.vo.NetdiskVo;
+import com.fjhx.oa.mapper.netdisk.NetdiskMapper;
+import com.fjhx.oa.service.netdisk.NetdiskService;
+import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import io.seata.spring.annotation.GlobalTransactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 网盘 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-07
+ */
+@DS(SourceConstant.OA)
+@Service
+public class NetdiskServiceImpl extends ServiceImpl<NetdiskMapper, Netdisk> implements NetdiskService {
+
+    @Autowired
+    FileInfoService fileInfoService;
+
+    @Override
+    public Page<NetdiskVo> getPage(NetdiskSelectDto dto) {
+        IWrapper<Netdisk> wrapper = getWrapper();
+        wrapper.orderByDesc("n", Netdisk::getId);
+        if (ObjectUtil.isEmpty(dto.getParentFolderId())) {
+            wrapper.eq(Netdisk::getParentFolderId, "-1");
+        } else {
+            wrapper.eq(Netdisk::getParentFolderId, dto.getParentFolderId());
+        }
+        wrapper.like(Netdisk::getName, dto.getKeyword());
+        Page<NetdiskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public NetdiskVo detail(Long id) {
+        Netdisk Netdisk = this.getById(id);
+        NetdiskVo result = BeanUtil.toBean(Netdisk, NetdiskVo.class);
+        return result;
+    }
+
+
+    @GlobalTransactional
+    @Override
+    public void add(NetdiskDto netdiskDto) {
+        //如果父文件夹id为空就赋值初始值-1
+        if(ObjectUtil.isEmpty(netdiskDto.getParentFolderId())){
+            netdiskDto.setParentFolderId(-1l);
+        }
+        if (netdiskDto.getType() == 1) {
+            //如果是文件夹,直接创建
+            this.save(netdiskDto);
+        } else {
+            //如果是文件,根据列表创建文件记录
+            List<Netdisk> netdiskList = new ArrayList<>();
+            List<FileInfo> fileInfoList = new ArrayList<>();
+
+            List<ObsFile> fileList = netdiskDto.getFileList();
+            for (ObsFile obsFile : fileList) {
+                //保存网盘信息
+                long id = IdWorker.getId();
+                Netdisk netdisk = new Netdisk();
+                netdisk.setId(id);
+                netdisk.setType(netdiskDto.getType());
+                netdisk.setParentFolderId(netdiskDto.getParentFolderId());
+                netdisk.setName(obsFile.getFileName());
+                netdiskList.add(netdisk);
+                //更新文件信息
+                FileInfo fileInfo = new FileInfo();
+                fileInfo.setId(obsFile.getId());
+                fileInfo.setBusinessId(id);
+                fileInfo.setBusinessType(0);
+                fileInfoList.add(fileInfo);
+            }
+
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+            fileInfoService.updateBatchById(fileInfoList);
+            DynamicDataSourceContextHolder.poll();
+            saveBatch(netdiskList);
+        }
+    }
+
+    @GlobalTransactional
+    @Override
+    public void edit(NetdiskDto netdiskDto) {
+        this.updateById(netdiskDto);
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        FileInfo fileInfo = fileInfoService.getOne(q -> q.eq(FileInfo::getBusinessId, netdiskDto.getId()));
+        if (ObjectUtil.isNotEmpty(fileInfo)) {
+            fileInfo.setFileName(netdiskDto.getName());
+            fileInfoService.updateById(fileInfo);
+        }else{
+            throw new ServiceException("文件信息不存在");
+        }
+        DynamicDataSourceContextHolder.poll();
+    }
+
+    @GlobalTransactional
+    @Override
+    public void delete(List<Long> ids) {
+        this.removeBatchByIds(ids);
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        List<FileInfo> list = fileInfoService.list(q -> q.in(FileInfo::getBusinessId, ids));
+        if(ObjectUtil.isNotEmpty(list)) {
+            List<Long> fids = list.stream().map(FileInfo::getId).collect(Collectors.toList());
+            fileInfoService.removeBatchByIds(fids);
+        }
+        DynamicDataSourceContextHolder.poll();
+    }
+
+}

+ 3 - 1
hx-oa/src/main/resources/mapper/daily/DailyReportMapper.xml

@@ -12,7 +12,9 @@
             dr.create_time,
             dr.update_user,
             dr.update_time,
-            drd.is_read
+            drd.is_read,
+            WEEKDAY(dr.create_time)+1 `week`,
+            date_format(dr.create_time,'%Y-%m-%d') `date`
         FROM
             daily_report dr
                 JOIN daily_report_details drd ON drd.daily_report_id = dr.id

+ 18 - 0
hx-oa/src/main/resources/mapper/netdisk/NetdiskMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.netdisk.NetdiskMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.netdisk.vo.NetdiskVo">
+        select
+            n.id,
+            n.type,
+            n.parent_folder_id,
+            n.name,
+            n.create_user,
+            n.create_time,
+            n.update_user,
+            n.update_time
+        from netdisk n
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>