Explorar el Código

项目关联部门功能

zhouyy hace 3 meses
padre
commit
ec05e91056

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.management.platform.config.PropertyMsg;
 import com.management.platform.entity.vo.GroupEstimatedWorkVO;
+import com.management.platform.entity.vo.ProjectDeptInfo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -488,7 +489,7 @@ public class Project extends Model<Project> {
     private String reviwerName;
 
     @TableField(exist = false)
-    private List<Department> departmentList;
+    private List<ProjectDeptInfo> departmentList;
 
 
     @Override

+ 10 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ProjectDeptInfo.java

@@ -0,0 +1,10 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class ProjectDeptInfo {
+    private Integer departmentId;
+    private String departmentName;
+    private Integer projectId;
+}

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DepartmentMapper.java

@@ -2,6 +2,7 @@ package com.management.platform.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.Department;
+import com.management.platform.entity.vo.ProjectDeptInfo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Update;
 
@@ -34,5 +35,7 @@ public interface DepartmentMapper extends BaseMapper<Department> {
     @Update("update department set superior_id = null where department_id = #{departmentId}")
     void updateNullSuperior(Integer departmentId);
 
-    List<Department> getNameWithProjectRelate(Integer id);
+    List<ProjectDeptInfo> getNameWithProjectRelate(@Param("id") Integer id);
+
+    List<ProjectDeptInfo> getNameWithProjectRelates(@Param("projectIds") List<Integer> projectIds);
 }

+ 9 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1461,6 +1461,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, create_date, project_id, working_time").in("project_id",projectIds).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
                 }
             }
+            //获取项目关联的部门
+            List<ProjectDeptInfo> departments = departmentMapper.getNameWithProjectRelates(projectIds);
+            Map<Integer, List<ProjectDeptInfo>> deptRelateMap = new HashMap<>();
+            if(CollectionUtils.isNotEmpty(departments)){
+                deptRelateMap = departments.stream().collect(Collectors.groupingBy(ProjectDeptInfo::getProjectId));
+            }
             for (Project project : projectList) {
                 //todo:计算项目预算工时
                 if(project.getManDay()!=null){
@@ -1582,6 +1588,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 maxFillDate.ifPresent(projectVO::setMaxFilingDate);
                 minFillDate.ifPresent(projectVO::setMinFilingDate);
 
+                //添加项目关联部门信息
+                projectVO.setDepartmentList(deptRelateMap.get(project.getId()));
                 list.add(projectVO);
             }
             long end = System.currentTimeMillis();
@@ -3567,7 +3575,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         project.setPlateMap(map);
 
         //设置项目关联部门
-        List<Department> departmentList = departmentMapper.getNameWithProjectRelate(project.getId());
+        List<ProjectDeptInfo> departmentList = departmentMapper.getNameWithProjectRelate(project.getId());
         project.setDepartmentList(departmentList);
         HttpRespMsg msg = new HttpRespMsg();
         msg.data = project;

+ 10 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml

@@ -140,10 +140,19 @@
         GROUP BY b.project_id, a.department_id
         having IFNULL(SUM(b.custom_data),0) > 0
     </select>
-    <select id="getNameWithProjectRelate" resultType="com.management.platform.entity.Department">
+    <select id="getNameWithProjectRelate" resultType="com.management.platform.entity.vo.ProjectDeptInfo">
         select department.department_id,department.department_name
         from department
                  left join project_dept_relate pdr on department.department_id = pdr.department_id
         where pdr.project_id = #{id}
     </select>
+    <select id="getNameWithProjectRelates" resultType="com.management.platform.entity.vo.ProjectDeptInfo">
+        select department.department_id,department.department_name,pdr.project_id
+        from department
+                 left join project_dept_relate pdr on department.department_id = pdr.department_id
+        where pdr.project_id in
+        <foreach collection="projectIds" item="projectId" separator="," open="(" close=")">
+            #{projectId}
+        </foreach>
+    </select>
 </mapper>