Переглянути джерело

导出日报增加对抄送人的支持

seyason 1 рік тому
батько
коміт
1ce298ed6e

+ 4 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -42,14 +42,16 @@ public interface ReportMapper extends BaseMapper<Report> {
                                                      @Param("endDate") String endDate,
                                                      @Param("projectId") Integer projectId,
                                                      @Param("stateKey") Integer stateKey,
-                                                     @Param("branchDepartment")List<Integer> branchDepartment);
+                                                     @Param("branchDepartment")List<Integer> branchDepartment,
+                                                             @Param("ccProjectIds")List<Integer> ccProjectIds);
     List<HashMap<String, Object>> getProjectMembReportByDateWithReportLog(@Param("startDate") String startDate,
                                                              @Param("companyId") Integer companyId,
                                                              @Param("leaderId") String leaderId,
                                                              @Param("endDate") String endDate,
                                                              @Param("projectId") Integer projectId,
                                                              @Param("stateKey") Integer stateKey,
-                                                             @Param("branchDepartment")List<Integer> branchDepartment);
+                                                             @Param("branchDepartment")List<Integer> branchDepartment,
+                                                                          @Param("ccProjectIds")List<Integer> ccProjectIds);
     //获取部门下的人员的日报
     List<HashMap<String, Object>> getDeptMembReportByDate(@Param("startDate") String startDate,
                                                              @Param("companyId") Integer companyId,

+ 11 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4300,13 +4300,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 List<HashMap<String, Object>> reportsFromProjects = null;
                 //检查是否是项目负责人
                 int cnt = projectMapper.selectCount(new QueryWrapper<Project>().eq("incharger_id", user.getId()));
-                if (cnt > 0) {
+                List<Integer> auditorPids = null;
+                if (timeType.getReportAuditType() == 5 && timeType.getReportCc() == 1) {
+                    //启用了抄送人
+                    List<ProjectAuditor> projectAuditors = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().eq("auditor_id", user.getId()));
+                    if (projectAuditors.size() > 0) {
+                        auditorPids = projectAuditors.stream().map(ProjectAuditor::getProjectId).collect(Collectors.toList());
+                    }
+                }
+                if (cnt > 0 || auditorPids != null) {
                     if (timeType.getShowFillauditTime() == 1) {
-                        reportsFromProjects = reportMapper.getProjectMembReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment);
+                        reportsFromProjects = reportMapper.getProjectMembReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids);
                     } else{
-                        reportsFromProjects = reportMapper.getProjectMembReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment);
+                        reportsFromProjects = reportMapper.getProjectMembReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids);
                     }
-
                 } else {
                     //普通员工只能看自己的
                     if (timeType.getShowFillauditTime() == 1) {

+ 15 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -257,7 +257,13 @@
             AND a.project_id = #{projectId}
         </if>
         <if test="leaderId != null">
-            AND (b.incharger_id = #{leaderId} or a.creator_id=#{leaderId})
+            AND (b.incharger_id = #{leaderId} or a.creator_id=#{leaderId} or a.project_auditor_id=#{leaderId}
+            <if test="ccProjectIds != null">
+                or a.project_id in
+                <foreach collection="ccProjectIds" item="pid" separator="," close=")" open="(" index="index">#{pid}
+                </foreach>
+            </if>
+            )
         </if>
         <if test="branchDepartment != null">
             AND department.department_id in
@@ -267,6 +273,7 @@
         </if>
         ORDER BY a.creator_id, a.create_date desc
     </select>
+
     <select id="getProjectMembReportByDateWithReportLog" resultType="java.util.Map">
         SELECT a.id, c.name,c.job_number as jobNumber,c.corpwx_userid as corpwxUserId,c.corpwx_deptid as corpwxDeptId, b.project_name AS project, b.project_code as projectCode, b.category_name as categoryName,a.working_time AS duration,
         a.content, a.create_time AS time, a.create_date as createDate,
@@ -316,7 +323,13 @@
             AND a.project_id = #{projectId}
         </if>
         <if test="leaderId != null">
-            AND (b.incharger_id = #{leaderId} or a.creator_id=#{leaderId})
+            AND (b.incharger_id = #{leaderId} or a.creator_id=#{leaderId} or a.project_auditor_id=#{leaderId}
+            <if test="ccProjectIds != null">
+                or a.project_id in
+                <foreach collection="ccProjectIds" item="pid" separator="," close=")" open="(" index="index">
+                    #{pid}
+                </foreach>
+            </if>)
         </if>
         <if test="branchDepartment != null">
             AND department.department_id in