浏览代码

项目报表服务修改
项目级别修改

yurk 2 年之前
父节点
当前提交
bebb8d6d39
共有 15 个文件被更改,包括 430 次插入28 次删除
  1. 60 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectLevelController.java
  2. 43 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectLevel.java
  3. 13 7
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  4. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ProjectVO.java
  5. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLevelMapper.java
  6. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  7. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskMapper.java
  8. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectLevelService.java
  9. 55 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectLevelServiceImpl.java
  10. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectMainServiceImpl.java
  11. 164 11
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  12. 17 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLevelMapper.xml
  13. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  14. 12 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
  15. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml

+ 60 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectLevelController.java

@@ -0,0 +1,60 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.Project;
+import com.management.platform.entity.ProjectLevel;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.ProjectLevelService;
+import com.management.platform.service.ProjectService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-25
+ */
+@RestController
+@RequestMapping("/project-level")
+public class ProjectLevelController {
+    @Autowired
+    private ProjectLevelService projectLevelService;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private ProjectService projectService;
+    @RequestMapping("/addOrMod")
+    public HttpRespMsg addOrMod(HttpServletRequest request, ProjectLevel projectLevel){
+        return projectLevelService.addOrMod(request,projectLevel);
+    }
+    @RequestMapping("/list")
+    public HttpRespMsg list(HttpServletRequest request){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<ProjectLevel> projectLevelList = projectLevelService.list(new QueryWrapper<ProjectLevel>().eq("company_id", companyId));
+        httpRespMsg.data=projectLevelList;
+        return httpRespMsg;
+    }
+    @RequestMapping("/delete")
+    public HttpRespMsg delete(Integer id){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        int cut = projectService.count(new QueryWrapper<Project>().eq("project_level_id", id));
+        if(cut>0){
+            httpRespMsg.setError("已绑定项目");
+            return httpRespMsg;
+        }
+        projectLevelService.removeById(id);
+        return httpRespMsg;
+    }
+}
+

+ 43 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectLevel.java

@@ -0,0 +1,43 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ProjectLevel extends Model<ProjectLevel> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("project_level_name")
+    private String projectLevelName;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 13 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,23 +1,23 @@
 package com.management.platform.entity;
 
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-07-24
+ * @since 2022-07-25
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -278,6 +278,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("report_audit_type")
     private Integer reportAuditType;
 
+    /**
+     * 0-未开启 1-开启
+     */
+    @TableField("project_level_state")
+    private Integer projectLevelState;
+
     @TableField(exist = false)
     private List<User> userList;
 

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ProjectVO.java

@@ -17,5 +17,6 @@ public class ProjectVO extends Project {
     String inchargerPhone;
     String statusName;
     String projectMainName;
+    String levelName;
     List<Map<String,Object>> providerInfoList;
 }

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLevelMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.ProjectLevel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-25
+ */
+public interface ProjectLevelMapper extends BaseMapper<ProjectLevel> {
+
+}

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

@@ -46,9 +46,9 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> getAllMembCost(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId,
                                              @Param("companyId") Integer companyId);
 
-    List<Project> getAllProjectCost(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId);
+    List<Project> getAllProjectCost(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId,List<Integer> inchagerIds);
 
-    List<Project> getProjectInAndOut(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId);
+    List<Project> getProjectInAndOut(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId,List<Integer> inchagerIds);
 
     List<CustomerProject> getCustomerProjectInAndOut(Integer companyId, Integer pageStart, Integer pageSize,Integer customerId,Integer projectId);
 
@@ -64,7 +64,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map> getTaskPlanByProject(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
                                 @Param("endDate") String endDate, @Param("companyId") Integer companyId);
 
-    List<ProjectWithStage> selectWithStage(Integer companyId, Integer startIndex, Integer endIndex, Integer projectId);
+    List<ProjectWithStage> selectWithStage(Integer companyId, Integer startIndex, Integer endIndex, Integer projectId,List<Integer> inchagerIds);
 
     List<Map<String, Object>> getTimeCostReport(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
                                           @Param("projectId") Integer projectId,@Param("deptIds")List<Integer> deptIds);

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

@@ -31,9 +31,9 @@ public interface TaskMapper extends BaseMapper<Task> {
 
     List<TimeTask> getTaskWithWorktime(Integer projectId, Integer taskType);
 
-    List getProjectTask(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId,Integer taskType);
+    List getProjectTask(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId,Integer taskType,List<Integer> inchagerIds);
 
-    Integer getProjectTaskCount(Integer companyId, Integer projectId,Integer taskType);
+    Integer getProjectTaskCount(Integer companyId, Integer projectId,Integer taskType,List<Integer> inchagerIds);
 
     List getTaskWithProjectName(@Param(Constants.WRAPPER) Wrapper wrapper, Integer pageStart, Integer pageSize);
 

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectLevelService.java

@@ -0,0 +1,20 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.ProjectLevel;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-25
+ */
+public interface ProjectLevelService extends IService<ProjectLevel> {
+
+    HttpRespMsg addOrMod(HttpServletRequest request, ProjectLevel projectLevel);
+}

+ 55 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectLevelServiceImpl.java

@@ -0,0 +1,55 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.ProjectLevel;
+import com.management.platform.mapper.ProjectLevelMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.ProjectLevelService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-25
+ */
+@Service
+public class ProjectLevelServiceImpl extends ServiceImpl<ProjectLevelMapper, ProjectLevel> implements ProjectLevelService {
+
+    @Resource
+    private ProjectLevelMapper projectLevelMapper;
+    @Resource
+    private UserMapper userMapper;
+
+    @Override
+    public HttpRespMsg addOrMod(HttpServletRequest request, ProjectLevel projectLevel) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        projectLevel.setCompanyId(companyId);
+        if(projectLevel.getId()!=null){
+            Integer count = projectLevelMapper.selectCount(new QueryWrapper<ProjectLevel>().eq("company_id", projectLevel.getCompanyId())
+                    .eq("project_level_name", projectLevel.getProjectLevelName()).ne("id", projectLevel.getId()));
+            if(count>0){
+                httpRespMsg.setError("名称已存在");
+                return httpRespMsg;
+            }
+            projectLevelMapper.updateById(projectLevel);
+        }else {
+            Integer count = projectLevelMapper.selectCount(new QueryWrapper<ProjectLevel>().eq("company_id", projectLevel.getCompanyId())
+                    .eq("project_level_name", projectLevel.getProjectLevelName()));
+            if(count>0){
+                httpRespMsg.setError("名称已存在");
+                return httpRespMsg;
+            }
+            projectLevelMapper.insert(projectLevel);
+        }
+        return httpRespMsg;
+    }
+}

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

@@ -45,11 +45,11 @@ public class ProjectMainServiceImpl extends ServiceImpl<ProjectMainMapper, Proje
             Integer count1 = projectMainMapper.selectCount(new QueryWrapper<ProjectMain>().eq("company_id", projectMain.getCompanyId())
                     .eq("name", projectMain.getName()).ne("id", projectMain.getId()));
             if(count>0){
-                httpRespMsg.setError("编号重复");
+                httpRespMsg.setError("编号已存在");
                 return httpRespMsg;
             }
             if(count1>0){
-                httpRespMsg.setError("名称重复");
+                httpRespMsg.setError("名称已存在");
                 return httpRespMsg;
             }
             projectMainMapper.updateById(projectMain);
@@ -59,11 +59,11 @@ public class ProjectMainServiceImpl extends ServiceImpl<ProjectMainMapper, Proje
             Integer count3 = projectMainMapper.selectCount(new QueryWrapper<ProjectMain>().eq("company_id", projectMain.getCompanyId())
                     .eq("name", projectMain.getName()));
             if(count2>0){
-                httpRespMsg.setError("编号重复");
+                httpRespMsg.setError("编号已存在");
                 return httpRespMsg;
             }
             if(count3>0){
-                httpRespMsg.setError("名称重复");
+                httpRespMsg.setError("名称已存在");
                 return httpRespMsg;
             }
             projectMainMapper.insert(projectMain);

+ 164 - 11
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -138,6 +138,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     ProviderInfoMapper providerInfoMapper;
     @Resource
     ProjectMainMapper projectMainMapper;
+    @Resource
+    ProjectLevelMapper projectLevelMapper;
 
     @Resource
     private HttpServletResponse response;
@@ -245,9 +247,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<ProviderInfo> providerInfoList = providerInfoMapper.selectList(new QueryWrapper<ProviderInfo>().eq("company_id", companyId));
             List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", companyId));
             List<ProjectMain> projectMainList = projectMainMapper.selectList(new QueryWrapper<ProjectMain>().eq("company_id", companyId));
+            List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", companyId));
+            TimeType timeType = timeTypeMapper.selectById(companyId);
             List<ProjectVO> list = new ArrayList<>();
             for (Project project : projectList) {
                 ProjectVO projectVO = new ProjectVO();
+                if(timeType.getProjectLevelState()==1){
+                    Optional<ProjectLevel> first = projectLevelList.stream().filter(pl -> pl.getId().equals(project.getLevel())).findFirst();
+                    if(first.isPresent()){
+                        projectVO.setLevelName(first.get().getProjectLevelName());
+                    }
+                }
                 BeanUtils.copyProperties(project, projectVO);
                 projectVO.setParticipator(participationMapper.getParticipator(projectVO.getId()));
                 Optional<User> first = userList.stream().filter(u -> u.getId().equals(project.getInchargerId())).findFirst();
@@ -1411,9 +1421,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg getProjectTask(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,Integer taskType) {
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-        int total = taskMapper.getProjectTaskCount(companyId, projectId,taskType);
         int pageStart = (pageIndex -1) * pageSize;
-        List projectTask = taskMapper.getProjectTask(companyId, pageStart, pageSize, projectId,taskType);
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl ->(pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
+        int total = taskMapper.getProjectTaskCount(companyId, projectId,taskType,inchagerIds);
+        List projectTask = taskMapper.getProjectTask(companyId, pageStart, pageSize, projectId,taskType,inchagerIds);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Map<String, Object> map = new HashMap<>();
         map.put("records", projectTask);
@@ -1431,7 +1458,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        List<Map> projectList = taskMapper.getProjectTask(companyId, null, null, null,taskType);
+        List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectAllList.stream().filter(pl -> (pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
+        List<Map> projectList = taskMapper.getProjectTask(companyId, null, null, null,taskType,inchagerIds);
         List<ProjectVO> list = new ArrayList<>();
         String[] statusNames = {"进行中","已完成","已撤销"};
         String[] typeList = {"任务","里程碑","风险"};
@@ -1461,13 +1505,33 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg getAllProjectCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request) {
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl -> (pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
         //撤销的项目不算
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         queryWrapper.and(wrapper->wrapper.isNull("status").or().ne("status", 3));
+        if(inchagerIds!=null){
+            queryWrapper.in("id",inchagerIds);
+        }
         int total = projectMapper.selectCount(queryWrapper);
         int pageStart = (pageIndex -1) * pageSize;
         System.out.println("companyId="+companyId+", pageStart="+pageStart+", pageSize="+pageSize);
-        List projectTask = projectMapper.getAllProjectCost(companyId, pageStart, pageSize, projectId);
+        List projectTask = projectMapper.getAllProjectCost(companyId, pageStart, pageSize, projectId,inchagerIds);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Map<String, Object> map = new HashMap<>();
         map.put("records", projectTask);
@@ -1482,9 +1546,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-
+        List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectAllList.stream().filter(pl ->(pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
-        List<Project> projectList = projectMapper.getAllProjectCost(companyId, null, null, null);
+        List<Project> projectList = projectMapper.getAllProjectCost(companyId, null, null, null,inchagerIds);
         List<List<String>> exportList = new ArrayList<>();
         String[] titles = {"项目编号", "项目名称", "人工成本", "一般费用", "差旅费用","外包费用", "总费用"};
         exportList.add(Lists.list(titles));
@@ -1510,12 +1590,32 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg getProjectInAndOut(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request) {
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl ->(pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
         //撤销的项目不算
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         queryWrapper.and(wrapper->wrapper.isNull("status").or().ne("status", 3));
+        if(inchagerIds!=null){
+            queryWrapper.in("id",inchagerIds);
+        }
         int total = projectMapper.selectCount(queryWrapper);
         int pageStart = (pageIndex -1) * pageSize;
-        List projectTask = projectMapper.getProjectInAndOut(companyId, pageStart, pageSize, projectId);
+        List projectTask = projectMapper.getProjectInAndOut(companyId, pageStart, pageSize, projectId,inchagerIds);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Map<String, Object> map = new HashMap<>();
         map.put("records", projectTask);
@@ -1550,9 +1650,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-
+        List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectAllList.stream().filter(pl -> (pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
-        List<Project> projectList = projectMapper.getProjectInAndOut(companyId, null, null, null);
+        List<Project> projectList = projectMapper.getProjectInAndOut(companyId, null, null, null,inchagerIds);
         List<List<String>> exportList = new ArrayList<>();
         String[] titles = {"项目编号", "项目名称", "合同金额", "人工成本", "一般费用", "差旅费用","外包费用", "总费用", "利润", "利润率"};
         exportList.add(Lists.list(titles));
@@ -2025,12 +2141,32 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         int startIndex = (pageIndex-1)*pageSize;
         int endIndex = pageSize*pageIndex;
         HttpRespMsg msg = new HttpRespMsg();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl -> (pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         if (projectId != null) {
             queryWrapper.eq("id", projectId);
         }
+        if(inchagerIds!=null){
+            queryWrapper.in("id",inchagerIds);
+        }
         Integer total = projectMapper.selectCount(queryWrapper);
-        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, startIndex, endIndex, projectId);
+        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, startIndex, endIndex, projectId,inchagerIds);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看阶段成本");
         if (functionList.size() == 0) {
             //去掉成本
@@ -2061,7 +2197,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
         HttpRespMsg msg = new HttpRespMsg();
-        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, null, null, null);
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl -> (pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
+        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, null, null, null,inchagerIds);
         //获取全部的列
         List<Integer> collect = record.stream().map(ProjectWithStage::getId).collect(Collectors.toList());
         List<Stages> stagesList = stagesMapper.selectList(new QueryWrapper<Stages>().select("distinct stages_name").in("project_id", collect));

+ 17 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLevelMapper.xml

@@ -0,0 +1,17 @@
+<?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.management.platform.mapper.ProjectLevelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ProjectLevel">
+        <id column="id" property="id" />
+        <result column="project_level_name" property="projectLevelName" />
+        <result column="company_id" property="companyId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, project_level_name, company_id
+    </sql>
+
+</mapper>

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -76,6 +76,12 @@
         <if test="projectId != null">
             and id = #{projectId}
         </if>
+        <if test="inchagerIds!=null and inchagerIds.size()>0">
+            and id in
+            <foreach collection="inchagerIds" open="(" close=")" separator="," item="item">
+                #{item}
+            </foreach>
+        </if>
         order by is_public desc, id asc
         <if test="startIndex != null">
             limit ${startIndex}, ${endIndex}
@@ -403,6 +409,12 @@
         <if test="projectId != null">
             and project.id = #{projectId}
         </if>
+        <if test="inchagerIds!=null and inchagerIds.size()>0">
+            and project.id in
+            <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         order by project.is_public desc, project.id asc
         <if test="pageStart != null and pageSize != null">
             LIMIT #{pageStart},#{pageSize}
@@ -420,6 +432,12 @@
         <if test="projectId != null">
             and project.id = #{projectId}
         </if>
+        <if test="inchagerIds!=null and inchagerIds.size()>0">
+            and project.id in
+            <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         order by is_public desc, id asc
         <if test="pageStart != null and pageSize != null">
             LIMIT #{pageStart},#{pageSize}

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -168,6 +168,12 @@
         <if test="taskType!=null">
             and task.task_type=#{taskType}
         </if>
+        <if test="inchagerIds!=null and inchagerIds.size()>0">
+            and task.project_id in
+            <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         ORDER BY project.is_public desc, project.id ASC, task.stages_id asc, task.seq asc
         <if test="pageStart != null and pageSize != null">
             limit #{pageStart}, #{pageSize}
@@ -182,6 +188,12 @@
         <if test="taskType!=null">
             and task.task_type=#{taskType}
         </if>
+        <if test="inchagerIds!=null and inchagerIds.size()>0">
+            and task.project_id in
+            <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
     </select>
 
     <select id="getTaskWithProjectName" resultMap="RichResultMap">

文件差异内容过多而无法显示
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml