Min 1 年之前
父節點
當前提交
f9ce932e52

+ 5 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -169,17 +169,17 @@ public interface ProjectMapper extends BaseMapper<Project> {
     @Update("update project set incharger_id = null, finish_date = null, plan_start_date = null, plan_end_date=null, level=null,contract_amount=0.0,man_day=null where id = #{id} and is_public = 1")
     void cleanPublicProjectData(Integer id);
 
-    List<Map<String, Object>> userProjectProcessList(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds, Integer start, Integer size);
+    List<Map<String, Object>> userProjectProcessList(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds,@Param("listSecond") List<Integer> regularDeptIds, Integer start, Integer size);
 
-    Long userProjectProcessCount(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds);
+    Long userProjectProcessCount(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds,@Param("listSecond") List<Integer> regularDeptIds);
 
-    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds);
+    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds,@Param("listSecond") List<Integer> regularDeptIds);
 
     List<Map<String, Object>> projectExpendProcessList(Integer projectId, Integer categoryId, String userId, Integer companyId, @Param("list") List<Integer> deptIds, Integer start, Integer size);
 
     Long projectExpendProcessListCount(Integer projectId, Integer categoryId, String userId, Integer companyId, @Param("list") List<Integer> deptIds);
 
-    List<Map<String, Object>> userTaskProcessList(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate, Integer start, Integer size);
+    List<Map<String, Object>> userTaskProcessList(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds, Integer start, Integer size);
 
-    Long userTaskProcessListCount(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate);
+    Long userTaskProcessListCount(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds);
 }

+ 71 - 19
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -12350,11 +12350,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             start=(pageIndex-1)*size;
         }
         //是否具有查看全部数据的权限
+        //针对依斯呗 指定部门
+        List<Integer> regularDeptIds=new ArrayList<>();
+        if(user.getCompanyId()==3092){
+            List<String> nameString=new ArrayList<>();
+            nameString.add("4");
+            nameString.add("12");
+            nameString.add("14");
+            List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()).in(Department::getDepartmentName, nameString));
+            List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
+            theCollect.add(-1);
+            for (Integer integer : theCollect) {
+                List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
+                regularDeptIds.addAll(branchDepartment);
+            }
+        }
         if(!viewAll){
             if(!incharger){
                 //只能查看本人的数据
-                resultList=projectMapper.userProjectProcessList(deptId,user.getId(),projectId,companyId,null,start,size);
-                total=projectMapper.userProjectProcessCount(deptId,user.getId(),projectId,companyId,null);
+                resultList=projectMapper.userProjectProcessList(deptId,user.getId(),projectId,companyId,null,null,start,size);
+                total=projectMapper.userProjectProcessCount(deptId,user.getId(),projectId,companyId,null,null);
             }else {
                 List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
                 List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
@@ -12368,12 +12383,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
                     deptIds.addAll(branchDepartment);
                 }
-                resultList=projectMapper.userProjectProcessList(deptId,userId,projectId,companyId,deptIds,start,size);
-                total=projectMapper.userProjectProcessCount(deptId,userId,projectId,companyId,deptIds);
+                resultList=projectMapper.userProjectProcessList(deptId,userId,projectId,companyId,deptIds,regularDeptIds,start,size);
+                total=projectMapper.userProjectProcessCount(deptId,userId,projectId,companyId,deptIds,regularDeptIds);
             }
         }else {
-            resultList=projectMapper.userProjectProcessList(deptId,userId,projectId,companyId,null,start,size);
-            total=projectMapper.userProjectProcessCount(deptId,userId,projectId,companyId,null);
+            resultList=projectMapper.userProjectProcessList(deptId,userId,projectId,companyId,null,regularDeptIds,start,size);
+            total=projectMapper.userProjectProcessCount(deptId,userId,projectId,companyId,null,regularDeptIds);
         }
         Map<String,Object> resultMap=new HashMap<>();
         resultMap.put("record",resultList);
@@ -12617,10 +12632,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize), new LambdaQueryWrapper<Project>().in(Project::getId, projectIds).eq(Project::getCompanyId, companyId));
         List<Project> projectList = projectIPage.getRecords();
         //是否具有查看全部数据的权限
+        //针对依斯呗 指定部门
+        List<Integer> regularDeptIds=new ArrayList<>();
+        if(user.getCompanyId()==3092){
+            List<String> nameString=new ArrayList<>();
+            nameString.add("4");
+            nameString.add("12");
+            nameString.add("14");
+            List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()).in(Department::getDepartmentName, nameString));
+            List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
+            theCollect.add(-1);
+            for (Integer integer : theCollect) {
+                List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
+                regularDeptIds.addAll(branchDepartment);
+            }
+        }
         if(!viewAll){
             if(!incharger){
                 //只能查看本人的数据
-                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,null);
+                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,null,null);
             }else {
                 List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
                 List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
@@ -12634,10 +12664,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
                     deptIds.addAll(branchDepartment);
                 }
-                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,deptIds);
+                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,deptIds,regularDeptIds);
             }
         }else {
-            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,null);
+            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,null,regularDeptIds);
         }
         List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
         List<Map<String,Object>> itemList=new ArrayList<>();
@@ -12647,8 +12677,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 Optional<Department> department = departmentList.stream().filter(d -> d.getDepartmentId().equals(deptId)).findFirst();
                 Integer corpwxDeptid = department.get().getCorpwxDeptid();
                 String departmentName = department.get().getDepartmentName();
+                List<Integer> subDeptIds;
                 switch (deptId){
                     case 7459:
+                        //获取此部门下的子部门id列表
+                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("生产部电气");
                         groupNames.add("生产部车间");
@@ -12669,7 +12702,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 item.put("process","0%");
                             }else {
                                 Optional<Map<String, Object>> first = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) && Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7458)).findFirst();
+                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) &&( Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7459)||subDeptIds.contains( Integer.valueOf(String.valueOf(r.get("deptId")))))).findFirst();
                                 if(first.isPresent()){
                                     item.put("planHour",first.get().get("planHour"));
                                     item.put("realHour",first.get().get("realHour"));
@@ -12690,6 +12723,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                         break;
                     case 7460:
+                        //获取此部门下的子部门id列表
+                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("工程部现场安装施工");
                         groupNames.add("工程部配合调试");
@@ -12710,7 +12745,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 item.put("process","0%");
                             }else {
                                 Optional<Map<String, Object>> first = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) && Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7458)).findFirst();
+                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) &&( Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7460)||subDeptIds.contains( Integer.valueOf(String.valueOf(r.get("deptId")))))).findFirst();
                                 if(first.isPresent()){
                                     item.put("planHour",first.get().get("planHour"));
                                     item.put("realHour",first.get().get("realHour"));
@@ -12731,6 +12766,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                         break;
                     case 7458:
+                        //获取此部门下的子部门id列表
+                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("研发部工艺设计");
                         groupNames.add("研发部结构设计");
@@ -12755,7 +12792,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 item.put("process","0%");
                             }else {
                                 Optional<Map<String, Object>> first = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) && Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7458)).findFirst();
+                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) &&( Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7458)||subDeptIds.contains( Integer.valueOf(String.valueOf(r.get("deptId")))))).findFirst();
                                 if(first.isPresent()){
                                     item.put("planHour",first.get().get("planHour"));
                                     item.put("realHour",first.get().get("realHour"));
@@ -13182,17 +13219,32 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             start=(pageIndex-1)*size;
         }
         //是否具有查看全部数据的权限
+        //针对依斯呗 指定部门
+        List<Integer> regularDeptIds=new ArrayList<>();
+        if(user.getCompanyId()==3092){
+            List<String> nameString=new ArrayList<>();
+            nameString.add("4");
+            nameString.add("12");
+            nameString.add("14");
+            List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()).in(Department::getDepartmentName, nameString));
+            List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
+            theCollect.add(-1);
+            for (Integer integer : theCollect) {
+                List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
+                regularDeptIds.addAll(branchDepartment);
+            }
+        }
         if(!viewAll){
             if(!incharger){
                 //只能查看本人的数据
-                resultList=projectMapper.userTaskProcessList(deptId,user.getId(),projectId,companyId,null,startDate,endDate,start,size);
-                total=projectMapper.userTaskProcessListCount(deptId,user.getId(),projectId,companyId,null,startDate,endDate);
+                resultList=projectMapper.userTaskProcessList(deptId,user.getId(),projectId,companyId,null,startDate,endDate,null,start,size);
+                total=projectMapper.userTaskProcessListCount(deptId,user.getId(),projectId,companyId,null,startDate,endDate,null);
             }else {
                 List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
                 List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
-                List<Integer> deptIds=new ArrayList<>();
                 List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
                 theCollect.add(-1);
+                List<Integer> deptIds=new ArrayList<>();
                 List<Integer> otherCollect = departmentOtherManagerList.stream().map(dom -> dom.getDepartmentId()).distinct().collect(Collectors.toList());
                 otherCollect.add(-1);
                 theCollect.addAll(otherCollect);
@@ -13200,12 +13252,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
                     deptIds.addAll(branchDepartment);
                 }
-                resultList=projectMapper.userTaskProcessList(deptId,userId,projectId,companyId,deptIds,startDate,endDate,start,size);
-                total=projectMapper.userTaskProcessListCount(deptId,userId,projectId,companyId,deptIds,startDate,endDate);
+                resultList=projectMapper.userTaskProcessList(deptId,userId,projectId,companyId,deptIds,startDate,endDate,regularDeptIds,start,size);
+                total=projectMapper.userTaskProcessListCount(deptId,userId,projectId,companyId,deptIds,startDate,endDate,regularDeptIds);
             }
         }else {
-            resultList=projectMapper.userTaskProcessList(deptId,userId,projectId,companyId,null,startDate,endDate,start,size);
-            total=projectMapper.userTaskProcessListCount(deptId,userId,projectId,companyId,null,startDate,endDate);
+            resultList=projectMapper.userTaskProcessList(deptId,userId,projectId,companyId,null,startDate,endDate,regularDeptIds,start,size);
+            total=projectMapper.userTaskProcessListCount(deptId,userId,projectId,companyId,null,startDate,endDate,regularDeptIds);
         }
         Map<String,Object> resultMap=new HashMap<>();
         resultMap.put("record",resultList);

+ 35 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -1802,7 +1802,7 @@
         left join  user u on u.id=te.executor_id
         left join department d on d.department_id=u.department_id
         left join project p on p.id=te.project_id
-        where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
+        where u.company_id=#{companyId} and te.project_id is not null
         <if test="deptId!=null">
             and d.department_id=#{deptId}
         </if>
@@ -1818,6 +1818,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="listSecond!=null and listSecond.size()>0">
+            and d.department_id in
+            <foreach collection="listSecond" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
         group by te.executor_id,te.project_id
         order by d.department_id,u.id
         <if test="start!=null and size!=null">
@@ -1833,7 +1839,7 @@
             left join  user u on u.id=te.executor_id
             left join department d on d.department_id=u.department_id
             left join project p on p.id=te.project_id
-            where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
+            where u.company_id=#{companyId} and te.project_id is not null
             <if test="deptId!=null">
                 and d.department_id=#{deptId}
             </if>
@@ -1849,6 +1855,12 @@
                     #{item}
                 </foreach>
             </if>
+        <if test="listSecond!=null and listSecond.size()>0">
+            and d.department_id in
+            <foreach collection="listSecond" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
             group by te.executor_id,te.project_id
         ) as total
     </select>
@@ -1867,7 +1879,7 @@
         LEFT JOIN report r  ON r.task_id=t.id
         LEFT JOIN project p ON p.id=r.project_id
         LEFT JOIN department d ON d.department_id=r.dept_id
-        WHERE r.company_id=#{companyId} AND r.dept_id IN (7458,7459,7460)  AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
+        WHERE r.company_id=#{companyId}  AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
         <if test="userId!=null and userId!=''">
             and r.creator_id=#{userId}
         </if>
@@ -1877,6 +1889,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="listSecond!=null and listSecond.size()>0">
+            and d.department_id in
+            <foreach collection="listSecond" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
         GROUP BY tg.id ORDER BY p.id,d.department_id
     </select>
 
@@ -1951,7 +1969,7 @@
         left join department d on d.department_id=u.department_id
         left join project p on p.id=te.project_id
         left join task t on te.task_id=t.id
-        where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
+        where u.company_id=#{companyId} and te.project_id is not null
         <if test="deptId!=null">
             and d.department_id=#{deptId}
         </if>
@@ -1967,6 +1985,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="listSecond!=null and listSecond.size()>0">
+            and d.department_id in
+            <foreach collection="listSecond" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="startDate!=null and endDate!=null and startDate!='' and endDate!=''">
             and t.start_date &gt;= #{startDate} and t.end_date &lt;= #{endDate}
         </if>
@@ -1985,7 +2009,7 @@
         left join department d on d.department_id=u.department_id
         left join project p on p.id=te.project_id
         left join task t on te.task_id=t.id
-        where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
+        where u.company_id=#{companyId} and te.project_id is not null
         <if test="deptId!=null">
             and d.department_id=#{deptId}
         </if>
@@ -2001,6 +2025,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="listSecond!=null and listSecond.size()>0">
+            and d.department_id in
+            <foreach collection="listSecond" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="startDate!=null and endDate!=null and startDate!='' and endDate!=''">
             and t.start_date &gt;= #{startDate} and t.end_date &lt;= #{endDate}
         </if>