yzc пре 2 година
родитељ
комит
4b8afdefc5
27 измењених фајлова са 1049 додато и 0 уклоњено
  1. 68 0
      hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportCommentsController.java
  2. 84 0
      hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportController.java
  3. 40 0
      hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportDetailsController.java
  4. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportCommentsDto.java
  5. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportCommentsSelectDto.java
  6. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDetailsDto.java
  7. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDetailsSelectDto.java
  8. 31 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDto.java
  9. 20 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportSelectDto.java
  10. 42 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReport.java
  11. 41 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReportComments.java
  12. 35 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReportDetails.java
  13. 25 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportCommentsVo.java
  14. 23 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportDetailsVo.java
  15. 45 0
      hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportVo.java
  16. 26 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportCommentsMapper.java
  17. 17 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportDetailsMapper.java
  18. 27 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportMapper.java
  19. 46 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportCommentsService.java
  20. 25 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportDetailsService.java
  21. 49 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportService.java
  22. 77 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportCommentsServiceImpl.java
  23. 50 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportDetailsServiceImpl.java
  24. 155 0
      hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java
  25. 19 0
      hx-oa/src/main/resources/mapper/daily/DailyReportCommentsMapper.xml
  26. 4 0
      hx-oa/src/main/resources/mapper/daily/DailyReportDetailsMapper.xml
  27. 32 0
      hx-oa/src/main/resources/mapper/daily/DailyReportMapper.xml

+ 68 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportCommentsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.oa.controller.daily;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportCommentsVo;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsSelectDto;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.daily.DailyReportCommentsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 报表评论 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@RestController
+@RequestMapping("/dailyReportComments")
+public class DailyReportCommentsController {
+
+    @Autowired
+    private DailyReportCommentsService dailyReportCommentsService;
+
+    /**
+     * 报表评论分页
+     */
+    @PostMapping("/page")
+    public Page<DailyReportCommentsVo> page(@RequestBody DailyReportCommentsSelectDto dto) {
+        return dailyReportCommentsService.getPage(dto);
+    }
+
+    /**
+     * 报表评论明细
+     */
+    @PostMapping("/detail")
+    public DailyReportCommentsVo detail(@RequestBody BaseSelectDto dto) {
+        return dailyReportCommentsService.detail(dto.getId());
+    }
+
+    /**
+     * 报表评论新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody DailyReportCommentsDto dailyReportCommentsDto) {
+        dailyReportCommentsService.add(dailyReportCommentsDto);
+    }
+
+    /**
+     * 报表评论编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody DailyReportCommentsDto dailyReportCommentsDto) {
+        dailyReportCommentsService.edit(dailyReportCommentsDto);
+    }
+
+    /**
+     * 报表评论删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        dailyReportCommentsService.delete(dto.getId());
+    }
+
+}

+ 84 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportController.java

@@ -0,0 +1,84 @@
+package com.fjhx.oa.controller.daily;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportVo;
+import com.fjhx.oa.entity.daily.dto.DailyReportSelectDto;
+import com.fjhx.oa.entity.daily.dto.DailyReportDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.daily.DailyReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 日报 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@RestController
+@RequestMapping("/dailyReport")
+public class DailyReportController {
+
+    @Autowired
+    private DailyReportService dailyReportService;
+
+    /**
+     * 日报分页
+     */
+    @PostMapping("/page")
+    public Page<DailyReportVo> page(@RequestBody DailyReportSelectDto dto) {
+        return dailyReportService.getPage(dto);
+    }
+
+    /**
+     * 日报明细
+     */
+    @PostMapping("/detail")
+    public DailyReportVo detail(@RequestBody BaseSelectDto dto) {
+        return dailyReportService.detail(dto.getId());
+    }
+
+    /**
+     * 日报新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody DailyReportDto dailyReportDto) {
+        dailyReportService.add(dailyReportDto);
+    }
+
+    /**
+     * 日报编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody DailyReportDto dailyReportDto) {
+        dailyReportService.edit(dailyReportDto);
+    }
+
+    /**
+     * 日报删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        dailyReportService.delete(dto.getId());
+    }
+
+    /**
+     * 个人日报统计
+     */
+    @PostMapping("/myCount")
+    public DailyReportVo myCount() {
+        return dailyReportService.myCount();
+    }
+
+    /**
+     * 分享日报
+     */
+    @PostMapping("/share")
+    public void share(Long id,Long toUserId) {
+        dailyReportService.share(id,toUserId);
+    }
+
+}

+ 40 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/daily/DailyReportDetailsController.java

@@ -0,0 +1,40 @@
+package com.fjhx.oa.controller.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.fjhx.oa.entity.daily.vo.DailyReportCommentsVo;
+import com.fjhx.oa.entity.daily.vo.DailyReportDetailsVo;
+import com.fjhx.oa.service.daily.DailyReportDetailsService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 日报明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@RestController
+@RequestMapping("/dailyReportDetails")
+public class DailyReportDetailsController {
+    @Autowired
+    DailyReportDetailsService dailyReportDetailsService;
+
+    @PostMapping("/list")
+    public List<DailyReportDetailsVo> list(@RequestBody BaseSelectDto dto) {
+        return dailyReportDetailsService.list(dto.getId());
+    }
+
+    @PostMapping("/remind")
+    public void remind(@RequestBody BaseSelectDto dto) {
+        dailyReportDetailsService.remind(dto.getId());
+    }
+
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportCommentsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.fjhx.oa.entity.daily.po.DailyReportComments;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 报表评论新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportCommentsDto extends DailyReportComments {
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportCommentsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 报表评论列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportCommentsSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 日报明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportDetailsDto extends DailyReportDetails {
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 日报明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportDetailsSelectDto extends BaseSelectDto {
+
+}

+ 31 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/dto/DailyReportDto.java

@@ -0,0 +1,31 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.oa.entity.daily.po.DailyReport;
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.fjhx.oa.entity.daily.vo.DailyReportDetailsVo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 日报新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportDto extends DailyReport {
+
+    /**图片列表*/
+    private List<ObsFile> imgList;
+
+    /**附件列表*/
+    private List<ObsFile> attachmentList;
+
+    /**接收人列表*/
+    private List<DailyReportDetails> dailyReportDetailsList;
+
+}

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

@@ -0,0 +1,20 @@
+package com.fjhx.oa.entity.daily.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 日报列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportSelectDto extends BaseSelectDto {
+
+    /**发送者id*/
+    private Long senderId;
+
+}

+ 42 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReport.java

@@ -0,0 +1,42 @@
+package com.fjhx.oa.entity.daily.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 日报
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+@TableName("daily_report")
+public class DailyReport extends BasePo {
+
+    /**
+     * 已完成的工作
+     */
+    private String completedWork;
+
+    /**
+     * 待完成的工作
+     */
+    private String unfinishedWork;
+
+    /**
+     * 需要协调的工作
+     */
+    private String coordinatedWork;
+
+    /**
+     * 是否仅接收人可见,不可转发
+     */
+    private Integer isVisibleToRecipient;
+
+}

+ 41 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReportComments.java

@@ -0,0 +1,41 @@
+package com.fjhx.oa.entity.daily.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 报表评论
+ * </p>
+ *
+ * @author
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+@TableName("daily_report_comments")
+public class DailyReportComments extends BasePo {
+
+    /**
+     * 日报id
+     */
+    private Long dailyReportId;
+
+    /**
+     * 回复评论id
+     */
+    private Long replyId;
+
+    /**
+     * 评论内容
+     */
+    private String text;
+
+    /**
+     * 评论评价
+     */
+    private Integer star;
+
+}

+ 35 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/po/DailyReportDetails.java

@@ -0,0 +1,35 @@
+package com.fjhx.oa.entity.daily.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 日报明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+@TableName("daily_report_details")
+public class DailyReportDetails extends BasePo {
+
+    /**
+     * 日报id
+     */
+    private Long dailyReportId;
+
+    /**
+     * 接收人id
+     */
+    private Long recipientId;
+
+    /**是否已读*/
+    private Integer isRead;
+
+}

+ 25 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportCommentsVo.java

@@ -0,0 +1,25 @@
+package com.fjhx.oa.entity.daily.vo;
+
+import com.fjhx.oa.entity.daily.po.DailyReportComments;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 报表评论列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportCommentsVo extends DailyReportComments {
+
+    /**用户名*/
+    private String userName;
+
+    /**回复列表*/
+    private List<DailyReportCommentsVo> replyList;
+
+}

+ 23 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/daily/vo/DailyReportDetailsVo.java

@@ -0,0 +1,23 @@
+package com.fjhx.oa.entity.daily.vo;
+
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 日报明细列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportDetailsVo extends DailyReportDetails {
+    /**
+     * 接收人名字
+     */
+    private String recipientName;
+
+}

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

@@ -0,0 +1,45 @@
+package com.fjhx.oa.entity.daily.vo;
+
+import com.fjhx.oa.entity.daily.po.DailyReport;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 日报列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+public class DailyReportVo extends DailyReport {
+
+    /**
+     * 用户名
+     */
+    private String userName;
+
+    /**
+     * 已读数量
+     */
+    private Integer readCount;
+
+    /**
+     * 是否已读
+     */
+    private Integer isRead;
+
+    /**
+     * 我发送日报数量
+     */
+    private Long quantitySent;
+    /**
+     * 我接收日报数量
+     */
+    private Long receivedQuantity;
+    /**
+     * 今日发送日报的数量
+     */
+    private Long quantitySentToday;
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportCommentsMapper.java

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

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportDetailsMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.mapper.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * <p>
+ * 日报明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface DailyReportDetailsMapper extends BaseMapper<DailyReportDetails> {
+
+}

+ 27 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/daily/DailyReportMapper.java

@@ -0,0 +1,27 @@
+package com.fjhx.oa.mapper.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReport;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 日报 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface DailyReportMapper extends BaseMapper<DailyReport> {
+
+    /**
+     * 日报分页
+     */
+    Page<DailyReportVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<DailyReport> wrapper);
+
+    DailyReportVo detail(Long id);
+}

+ 46 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportCommentsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.oa.service.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReportComments;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportCommentsVo;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsSelectDto;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsDto;
+
+
+/**
+ * <p>
+ * 报表评论 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface DailyReportCommentsService extends BaseService<DailyReportComments> {
+
+    /**
+     * 报表评论分页
+     */
+    Page<DailyReportCommentsVo> getPage(DailyReportCommentsSelectDto dto);
+
+    /**
+     * 报表评论明细
+     */
+    DailyReportCommentsVo detail(Long id);
+
+    /**
+     * 报表评论新增
+     */
+    void add(DailyReportCommentsDto dailyReportCommentsDto);
+
+    /**
+     * 报表评论编辑
+     */
+    void edit(DailyReportCommentsDto dailyReportCommentsDto);
+
+    /**
+     * 报表评论删除
+     */
+    void delete(Long id);
+
+}

+ 25 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportDetailsService.java

@@ -0,0 +1,25 @@
+package com.fjhx.oa.service.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.fjhx.oa.entity.daily.vo.DailyReportDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 日报明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface DailyReportDetailsService extends BaseService<DailyReportDetails> {
+
+    /**日报接收人已读未读列表*/
+    List<DailyReportDetailsVo> list(Long id);
+
+    /**提醒接收者日报未读*/
+    void remind(Long id);
+}

+ 49 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/DailyReportService.java

@@ -0,0 +1,49 @@
+package com.fjhx.oa.service.daily;
+
+import com.fjhx.oa.entity.daily.po.DailyReport;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportVo;
+import com.fjhx.oa.entity.daily.dto.DailyReportSelectDto;
+import com.fjhx.oa.entity.daily.dto.DailyReportDto;
+
+
+/**
+ * <p>
+ * 日报 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface DailyReportService extends BaseService<DailyReport> {
+
+    /**
+     * 日报分页
+     */
+    Page<DailyReportVo> getPage(DailyReportSelectDto dto);
+
+    /**
+     * 日报明细
+     */
+    DailyReportVo detail(Long id);
+
+    /**
+     * 日报新增
+     */
+    void add(DailyReportDto dailyReportDto);
+
+    /**
+     * 日报编辑
+     */
+    void edit(DailyReportDto dailyReportDto);
+
+    /**
+     * 日报删除
+     */
+    void delete(Long id);
+
+    DailyReportVo myCount( );
+
+    void share(Long id, Long toUserId);
+}

+ 77 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportCommentsServiceImpl.java

@@ -0,0 +1,77 @@
+package com.fjhx.oa.service.daily.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.oa.entity.daily.po.DailyReportComments;
+import com.fjhx.oa.mapper.daily.DailyReportCommentsMapper;
+import com.fjhx.oa.service.daily.DailyReportCommentsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.daily.vo.DailyReportCommentsVo;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.oa.entity.daily.dto.DailyReportCommentsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 报表评论 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@DS(SourceConstant.OA)
+@Service
+public class DailyReportCommentsServiceImpl extends ServiceImpl<DailyReportCommentsMapper, DailyReportComments> implements DailyReportCommentsService {
+
+    @Override
+    public Page<DailyReportCommentsVo> getPage(DailyReportCommentsSelectDto dto) {
+        IWrapper<DailyReportComments> wrapper = getWrapper();
+        wrapper.orderByDesc("drc", DailyReportComments::getId);
+        //过滤掉回复评论
+        wrapper.isNull("drc.reply_id");
+        Page<DailyReportCommentsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<DailyReportCommentsVo> records = page.getRecords();
+        //赋值用户名
+        UserUtil.assignmentNickName(records,DailyReportComments::getCreateUser,DailyReportCommentsVo::setUserName);
+        //赋值回复评论列表
+        List<Long> dailyReportCommentsIds = records.stream().map(DailyReportComments::getId).collect(Collectors.toList());
+        for (DailyReportCommentsVo dailyReportComments:records){
+            List<DailyReportComments> list = list(q -> q.in(DailyReportComments::getReplyId, dailyReportCommentsIds));
+            List<DailyReportCommentsVo> dailyReportCommentsVos = BeanUtil.copyToList(list, DailyReportCommentsVo.class);
+            UserUtil.assignmentNickName(dailyReportCommentsVos,DailyReportComments::getCreateUser,DailyReportCommentsVo::setUserName);
+            dailyReportComments.setReplyList(dailyReportCommentsVos);
+        }
+        return page;
+    }
+
+    @Override
+    public DailyReportCommentsVo detail(Long id) {
+        DailyReportComments DailyReportComments = this.getById(id);
+        DailyReportCommentsVo result = BeanUtil.toBean(DailyReportComments, DailyReportCommentsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(DailyReportCommentsDto dailyReportCommentsDto) {
+        this.save(dailyReportCommentsDto);
+    }
+
+    @Override
+    public void edit(DailyReportCommentsDto dailyReportCommentsDto) {
+        this.updateById(dailyReportCommentsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 50 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportDetailsServiceImpl.java

@@ -0,0 +1,50 @@
+package com.fjhx.oa.service.daily.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.fjhx.oa.entity.daily.vo.DailyReportDetailsVo;
+import com.fjhx.oa.mapper.daily.DailyReportDetailsMapper;
+import com.fjhx.oa.service.daily.DailyReportDetailsService;
+import com.fjhx.socket.service.WebSocketServer;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 日报明细 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-04
+ */
+@DS(SourceConstant.OA)
+@Service
+public class DailyReportDetailsServiceImpl extends ServiceImpl<DailyReportDetailsMapper, DailyReportDetails> implements DailyReportDetailsService {
+
+    @Override
+    public List<DailyReportDetailsVo> list(Long id) {
+        List<DailyReportDetails> list = list(q -> q.eq(DailyReportDetails::getDailyReportId, id));
+        List<DailyReportDetailsVo> dailyReportDetailsVos = BeanUtil.copyToList(list, DailyReportDetailsVo.class);
+        UserUtil.assignmentNickName(dailyReportDetailsVos, DailyReportDetails::getCreateUser, DailyReportDetailsVo::setRecipientName);
+        return dailyReportDetailsVos;
+    }
+
+    @Override
+    public void remind(Long id) {
+        List<DailyReportDetails> list = list(q -> q.eq(DailyReportDetails::getDailyReportId, id).eq(DailyReportDetails::getIsRead, 0));
+        Map<String, Object> msgMap = new HashMap<>();
+        msgMap.put("businessId", id);
+        msgMap.put("msg", "您有未读的日报");
+        for (DailyReportDetails dailyReportDetails : list) {
+            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
+        }
+    }
+}

+ 155 - 0
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java

@@ -0,0 +1,155 @@
+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;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.oa.entity.daily.dto.DailyReportDto;
+import com.fjhx.oa.entity.daily.dto.DailyReportSelectDto;
+import com.fjhx.oa.entity.daily.po.DailyReport;
+import com.fjhx.oa.entity.daily.po.DailyReportDetails;
+import com.fjhx.oa.entity.daily.vo.DailyReportVo;
+import com.fjhx.oa.mapper.daily.DailyReportMapper;
+import com.fjhx.oa.service.daily.DailyReportDetailsService;
+import com.fjhx.oa.service.daily.DailyReportService;
+import com.fjhx.socket.service.WebSocketServer;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 日报 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-04
+ */
+@DS(SourceConstant.OA)
+@Service
+public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, DailyReport> implements DailyReportService {
+    @Autowired
+    DailyReportDetailsService dailyReportDetailsService;
+
+    @Override
+    public Page<DailyReportVo> getPage(DailyReportSelectDto dto) {
+        IWrapper<DailyReport> wrapper = getWrapper();
+        wrapper.orderByDesc("dr", DailyReport::getId);
+        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()));
+        }
+        Page<DailyReportVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        UserUtil.assignmentNickName(page.getRecords(), DailyReport::getCreateUser, DailyReportVo::setUserName);
+        return page;
+    }
+
+    @Override
+    public DailyReportVo detail(Long id) {
+        DailyReportVo result = baseMapper.detail(id);
+        Map<Long, String> nickNameMapByIds = UserUtil.getNickNameMapByIds(Arrays.asList(result.getCreateUser()));
+        result.setUserName(nickNameMapByIds.get(result.getCreateUser()));
+        //添加已读记录
+        Long userid = SecurityUtils.getUserId();
+        DailyReportDetails dailyReportDetails = dailyReportDetailsService.getOne(q -> q.eq(DailyReportDetails::getDailyReportId, id).eq(DailyReportDetails::getRecipientId, userid));
+        if(ObjectUtil.isNotEmpty(dailyReportDetails)) {
+            dailyReportDetails.setIsRead(1);
+            dailyReportDetailsService.updateById(dailyReportDetails);
+        }
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(DailyReportDto dailyReportDto) {
+        this.save(dailyReportDto);
+        //保存图片和附件信息
+        ObsFileUtil.saveFile(dailyReportDto.getImgList(), dailyReportDto.getId(), 1);
+        ObsFileUtil.saveFile(dailyReportDto.getAttachmentList(), dailyReportDto.getId(), 2);
+        //保存接收人明细信息
+        List<DailyReportDetails> dailyReportDetailsList = dailyReportDto.getDailyReportDetailsList();
+        for (DailyReportDetails dailyReportDetails : dailyReportDetailsList) {
+            dailyReportDetails.setIsRead(0);
+            dailyReportDetails.setDailyReportId(dailyReportDto.getId());
+        }
+        dailyReportDetailsService.saveBatch(dailyReportDetailsList);
+        //发送消息给所有待接收人
+        Map<Long, String> nickNameMapByIds = UserUtil.getNickNameMapByIds(Arrays.asList(dailyReportDto.getCreateUser()));
+        String userName = nickNameMapByIds.get(dailyReportDto.getCreateUser());
+        Map<String, Object> msgMap = new HashMap<>();
+        msgMap.put("businessId", dailyReportDto.getId());
+        msgMap.put("msg", String.format("%s发布了新日志", userName));
+        for (DailyReportDetails dailyReportDetails : dailyReportDetailsList) {
+            WebSocketServer.sendInfo(dailyReportDetails.getRecipientId(), 1, msgMap);
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(DailyReportDto dailyReportDto) {
+        this.updateById(dailyReportDto);
+        //保存图片和附件信息
+        ObsFileUtil.editFile(dailyReportDto.getImgList(), dailyReportDto.getId(), 1);
+        ObsFileUtil.editFile(dailyReportDto.getAttachmentList(), dailyReportDto.getId(), 2);
+        //处理接收人
+        List<DailyReportDetails> dailyReportDetailsList = dailyReportDto.getDailyReportDetailsList();
+        //先删除已经被删掉的接收人
+        List<Long> recipientIds = dailyReportDetailsList.stream().map(DailyReportDetails::getRecipientId).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(recipientIds)) {
+            dailyReportDetailsService.remove(q -> q.eq(DailyReportDetails::getDailyReportId, dailyReportDto.getId()).notIn(DailyReportDetails::getRecipientId, recipientIds));
+        }
+        //保存接收人明细信息
+        for (DailyReportDetails dailyReportDetails : dailyReportDetailsList) {
+            dailyReportDetails.setDailyReportId(dailyReportDto.getId());
+        }
+        dailyReportDetailsService.saveOrUpdateBatch(dailyReportDetailsList);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public DailyReportVo myCount() {
+        //发送日报数
+        long quantitySent = count(q -> q.eq(DailyReport::getCreateUser, SecurityUtils.getUserId()));
+        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);
+        long quantitySentToday = count(wrapper);
+        DailyReportVo dailyReportVo = new DailyReportVo();
+        dailyReportVo.setQuantitySent(quantitySent);
+        dailyReportVo.setReceivedQuantity(receivedQuantity);
+        dailyReportVo.setQuantitySentToday(quantitySentToday);
+        return dailyReportVo;
+    }
+
+    @Override
+    public void share(Long id, Long toUserId) {
+        String username = SecurityUtils.getUsername();
+        Map<String, Object> msgMap = new HashMap<>();
+        msgMap.put("businessId", id);
+        msgMap.put("msg", String.format("%s给你分享了日报",username));
+        WebSocketServer.sendInfo(toUserId, 1, msgMap);
+    }
+
+}

+ 19 - 0
hx-oa/src/main/resources/mapper/daily/DailyReportCommentsMapper.xml

@@ -0,0 +1,19 @@
+<?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.daily.DailyReportCommentsMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.daily.vo.DailyReportCommentsVo">
+        select
+            drc.id,
+            drc.daily_report_id,
+            drc.reply_id,
+            drc.text,
+            drc.star,
+            drc.create_user,
+            drc.create_time,
+            drc.update_user,
+            drc.update_time
+        from daily_report_comments drc
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 4 - 0
hx-oa/src/main/resources/mapper/daily/DailyReportDetailsMapper.xml

@@ -0,0 +1,4 @@
+<?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.daily.DailyReportDetailsMapper">
+</mapper>

+ 32 - 0
hx-oa/src/main/resources/mapper/daily/DailyReportMapper.xml

@@ -0,0 +1,32 @@
+<?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.daily.DailyReportMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.daily.vo.DailyReportVo">
+        SELECT
+            dr.id,
+            dr.completed_work,
+            dr.unfinished_work,
+            dr.coordinated_work,
+            dr.is_visible_to_recipient,
+            dr.create_user,
+            dr.create_time,
+            dr.update_user,
+            dr.update_time,
+            drd.is_read
+        FROM
+            daily_report dr
+                JOIN daily_report_details drd ON drd.daily_report_id = dr.id
+            ${ew.customSqlSegment}
+    </select>
+    <select id="detail" resultType="com.fjhx.oa.entity.daily.vo.DailyReportVo">
+        SELECT
+            dr.*,
+            sum( drd.is_read ) readCount
+        FROM
+            daily_report dr
+                LEFT JOIN daily_report_details drd ON drd.daily_report_id = dr.id
+        WHERE
+            dr.id = #{id}
+    </select>
+
+</mapper>