Ver Fonte

Merge branch 'master' of http://47.100.37.243:10080/ZHOU/yunsu

# Conflicts:
#	cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldFileServiceImpl.java
há 5 anos atrás
pai
commit
d5de77ba8c

+ 2 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/mapper/ProjectMapper.java

@@ -28,4 +28,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<User> getProjectUserById(@Param("id")Integer id);
 
     List<ProjectVO> selectUserPowerList(@Param("user") UserVO user, @Param("type") Integer type);
+
+    List<ProjectVO> getProjectListByUidInProjectIds(@Param("keyName")String keyName, @Param("list")List<Integer> projectIds);
 }

+ 42 - 8
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/ProjectServiceImpl.java

@@ -241,21 +241,55 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getList(String keyName, PageUtil page, User currentUser) {
+    public HttpRespMsg getList(String keyName, PageUtil page, User user) {
         HttpRespMsg msg = new HttpRespMsg();
-        if (currentUser != null) {
+        if (user != null) {
             PageHelper.startPage(page.getPageNum(), page.getPageSize());
-            List<ProjectVO> projects = projectMapper.getProjectListByUid(keyName, currentUser);
+            List<Integer> uIds = new ArrayList<>();
+            List<ProjectVO> projects = new ArrayList<>();
+            List<Integer> projectIds = new ArrayList<>();
+            projectIds.add(-1);
+            if (Constant.SYS_PARENT_ID == user.getParentId()) {
+                projects = projectMapper.getProjectListByUid(keyName, user);
+            } else if (Constant.SYS_ID == user.getParentId()) {
+                if (user.getSubordinateType() == 0) {
+                    QueryWrapper<Project> qwr = new QueryWrapper<>();
+                    //资产方管理员,看到自己创建的项目
+                    qwr.select("id").eq("creator_id", user.getId());
+                    projectIds = projectMapper.selectList(qwr).stream().map(Project::getId).collect(Collectors.toList());
+                    projects = projectMapper.getProjectListByUidInProjectIds(keyName,projectIds);
+                } else if (user.getSubordinateType() == 1) {
+                    projectIds = customCompanyMapper.selectList(new QueryWrapper<CustomCompany>().eq("company_id", user.getCompanyId())).stream().map(CustomCompany::getProjectId).collect(Collectors.toList());
+                    projects = projectMapper.getProjectListByUidInProjectIds(keyName,projectIds);                }
+            } else {
+
+                QueryWrapper<Project> qwPro = new QueryWrapper<>();
+                qwPro.eq("manager_id", user.getId());
+                projectIds = projectMapper.selectList(qwPro).stream().map(Project::getId).collect(Collectors.toList());;
+                //项目经理或者普通用户
+                projectIds.addAll(projectUserMapper.selectList(new QueryWrapper<ProjectUser>()
+                        .eq("user_id", user.getId()))
+                        .stream()
+                        .map(ProjectUser::getProjectId)
+                        .collect(Collectors.toList()));
+                //作为审批人
+                projectIds.addAll(projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>()
+                        .eq("approver_id", user.getId()))
+                        .stream()
+                        .map(ProjectApprove::getProjectId)
+                        .collect(Collectors.toList()));
+                projects = projectMapper.getProjectListByUidInProjectIds(keyName,projectIds);
+            }
             PageInfo<ProjectVO> pageInfos = new PageInfo<>(projects);
             msg.data = pageInfos;
         } else {
             msg.setError("当前用户不存,或涉及到权限问题,请重新登录");
         }
-        QueryWrapper<Project> qw = new QueryWrapper<>();
-        qw.select("project_name", "creator", "charger", "indate");
-        if (keyName != null) {
-            qw.like("project_name", keyName);
-        }
+//        QueryWrapper<Project> qw = new QueryWrapper<>();
+//        qw.select("project_name", "creator", "charger", "indate");
+//        if (keyName != null) {
+//            qw.like("project_name", keyName);
+//        }
         return msg;
     }
 

+ 27 - 2
cloud-model/src/main/resources/mapper/ProjectMapper.xml

@@ -56,11 +56,36 @@
         left join tb_project_approve tpa
         on tpa.project_id = p.id
         <where>
-            <if test="currentUser.id != 1">
+            <!--<if test="currentUser.id != 1">
                 pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
+            </if>-->
+            <if test="keyName != null and keyName != ''">
+                AND p.project_name like concat('%',#{keyName},'%')
             </if>
+        </where>
+        GROUP BY p.id
+        order by p.id desc
+    </select>
+    <select id="getProjectListByUidInProjectIds" resultMap="BaseResultMapList">
+        select
+        p.id id,p.project_name project_name, p.creator creator,p.owner_company owner_company,
+        p.owner_company_name owner_company_name,p.manager_id manager_id,p.manager manager,
+        p.indate indate
+        from
+        tb_project p
+        left join tb_project_user pu
+        on p.id = pu.project_id
+        left join tb_project_approve tpa
+        on tpa.project_id = p.id
+        <where>
+            p.id in <foreach collection="list" separator="," close=")" item="item" open="(" index="index">
+            #{item}
+        </foreach>
+            <!--<if test="currentUser.id != 1">
+                pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
+            </if>-->
             <if test="keyName != null and keyName != ''">
-                p.project_name like concat('%',#{keyName},'%')
+                AND p.project_name like concat('%',#{keyName},'%')
             </if>
         </where>
         GROUP BY p.id