浏览代码

修改getProjectPage bug, 修改获取假期额度接口,增加获取周考勤打卡时长接口

seyason 2 年之前
父节点
当前提交
c7a29011e9

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -110,6 +110,12 @@ public class ReportController {
         return reportService.getCardTime(date, request);
     }
 
+    @RequestMapping("/getWeeklyCardTime")
+    public HttpRespMsg getWeeklyCardTime(@RequestParam String dateStr) {
+        return reportService.getWeeklyCardTime(dateStr, request);
+    }
+
+
 
     private void fillReportProgress(Report report, String professionProgress) {
         if (!StringUtil.isEmpty(professionProgress)) {

+ 26 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/StagesController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -31,6 +32,8 @@ public class StagesController {
     @Resource
     private HttpServletRequest request;
 
+    @Resource
+    private GroupParticipatorMapper groupParticipatorMapper;
     @Resource
     private StagesService stagesService;
     @Resource
@@ -230,9 +233,29 @@ public class StagesController {
             }
         }
 
-
-
-        msg.data = list;
+        //判断当前用户是否有权限创建任务: 有权限的包括管理全部项目,项目创建人,项目PM, 分组负责人,分组参与人
+        List<SysRichFunction> manageAllProjects = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "管理全部项目");
+        boolean canAddTask = false;
+        if (manageAllProjects.size() > 0 || userId.equals(project.getCreatorId()) || userId.equals(project.getInchargerId())) {
+            canAddTask = true;
+        }
+        if (!canAddTask) {
+            //进一步判断是否是分组的负责人,参与人
+            TaskGroup group = taskGroupMapper.selectById(item.getGroupId());
+            if (userId.equals(group.getInchargerId())) {
+                canAddTask = true;
+            }
+            if (!canAddTask) {
+                int count = groupParticipatorMapper.selectCount(new QueryWrapper<GroupParticipator>().eq("user_id", userId).eq("group_id", group.getId()));
+                if (count > 0) {
+                    canAddTask = true;
+                }
+            }
+        }
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("list", list);
+        map.put("canAddTask", canAddTask);
+        msg.data = map;
         return msg;
     }
 

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -71,6 +71,11 @@ public class UserController {
         return userService.getEmployeeList(departmentId, keyword, status, roleId, onlyDirect, pageIndex, pageSize, request);
     }
 
+    @RequestMapping("/getSimpleActiveUserList")
+    public HttpRespMsg getSimpleActiveUserList() {
+        return userService.getSimpleActiveUserList(request);
+    }
+
     /**
      * 删除用户
      * userId 用户id

+ 27 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserYearleaveSettingController.java

@@ -9,6 +9,7 @@ import com.dingtalk.api.DingTalkClient;
 import com.dingtalk.api.request.OapiAttendanceVacationTypeListRequest;
 import com.dingtalk.api.response.OapiAttendanceVacationTypeListResponse;
 import com.management.platform.entity.*;
+import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyDingdingService;
 import com.management.platform.service.DingDingService;
@@ -59,6 +60,8 @@ public class UserYearleaveSettingController {
     private HttpServletRequest request;
     @Resource
     private UserMapper userMapper;
+    @Resource
+    private SysFunctionMapper sysFunctionMapper;
 
     @RequestMapping("/save")
     public HttpRespMsg save(String userId, Integer companyId, Integer yearDays) {
@@ -141,20 +144,31 @@ public class UserYearleaveSettingController {
             map.put("defaultLeaveType", defaultType);
         }
         quotaNumQueryWrapper.eq("leave_code", leaveCode);
-        if (userId != null) {
-            String dingdingUserid = userMapper.selectById(userId).getDingdingUserid();
-            quotaNumQueryWrapper.eq("user_dingding_id", dingdingUserid);
-        } else if (departmentId != null) {
-            //指定部门
-            Department dept = departmentMapper.selectById(departmentId);
-            List<Department> allDept = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-            List<Department> allSubDepts = getSubDeptList(allDept, dept);
-            List<User> userList = userMapper.selectList(
-                    new QueryWrapper<User>()
-                            .in("department_id", allSubDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList())));
-            List<String> userDDIds = userList.stream().map(User::getDingdingUserid).collect(Collectors.toList());
-            quotaNumQueryWrapper.in("user_dingding_id", userDDIds);
+        //是否具有查看全部请假单的权限
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部请假单");
+        if (functionList.size() == 0) {
+            //普通员工只能看自己的
+            quotaNumQueryWrapper.eq("user_dingding_id", user.getDingdingUserid());
+        } else {
+            //管理员看全部的
+            if (userId != null) {
+                String dingdingUserid = userMapper.selectById(userId).getDingdingUserid();
+                quotaNumQueryWrapper.eq("user_dingding_id", dingdingUserid);
+            } else if (departmentId != null) {
+                //指定部门
+                Department dept = departmentMapper.selectById(departmentId);
+                List<Department> allDept = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                List<Department> allSubDepts = getSubDeptList(allDept, dept);
+                List<User> userList = userMapper.selectList(
+                        new QueryWrapper<User>()
+                                .in("department_id", allSubDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList())));
+                List<String> userDDIds = userList.stream().map(User::getDingdingUserid).collect(Collectors.toList());
+                quotaNumQueryWrapper.in("user_dingding_id", userDDIds);
+            }
         }
+
         quotaNumQueryWrapper.orderByAsc("name").orderByAsc("start_time");
         quotaNumQueryWrapper.select("company_id, user_dingding_id, NAME, leave_code, MIN(start_time) AS start_time, MAX(end_time) AS end_time, ROUND(SUM(quota_in_hours),1) AS quota_in_hours, ROUND(SUM(quota_in_days),1) AS quota_in_days, ROUND(SUM(used_in_hours),1) AS used_in_hours, ROUND(SUM(used_in_days),1) AS used_in_days, ROUND(SUM(left_in_hours),1) AS left_in_hours, ROUND(SUM(left_in_days),1) AS left_in_days ");
         quotaNumQueryWrapper.groupBy("company_id, user_dingding_id");

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -86,4 +86,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg getReportListByToken(String token, String startDate, String endDate);
 
     HttpRespMsg fixIssue();
+
+    HttpRespMsg getWeeklyCardTime(String dateStr, HttpServletRequest request);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -66,4 +66,6 @@ public interface UserService extends IService<User> {
     HttpRespMsg batchUpdateDept(String userIds, Integer deptId, HttpServletRequest request);
 
     HttpRespMsg batchUpdateRole(String userIds, Integer roleId, HttpServletRequest request);
+
+    HttpRespMsg getSimpleActiveUserList(HttpServletRequest request);
 }

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

@@ -259,7 +259,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<Integer> projectIds = projectList.stream().distinct().map(pl -> pl.getId()).collect(Collectors.toList());
             List<ProjectSeparate> projectSeparateList=new ArrayList<>();
             if(companyId==936){
-                projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", projectIds));
+                if (projectIds.size() > 0) {
+                    projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", projectIds));
+                }
             }
 
             List<ProjectVO> list = new ArrayList<>();

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

@@ -3861,6 +3861,26 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return new HttpRespMsg();
     }
 
+    @Override
+    public HttpRespMsg getWeeklyCardTime(String dateStr, HttpServletRequest request) {
+        String userId = request.getHeader("TOKEN");
+        User user = userMapper.selectById(userId);
+        int companyId = user.getCompanyId();
+        TimeType timeType = timeTypeMapper.selectById(companyId);
+        HttpRespMsg msg = new HttpRespMsg();
+        List<String> dateList = JSONArray.parseArray(dateStr, String.class);
+        if (timeType.getShowDdCardtime() == 1) {
+            List<UserDingdingTime> dingdingTimes = userDingdingTimeMapper.selectList(new QueryWrapper<UserDingdingTime>()
+                    .eq("user_id", userId).in("work_date", dateList));
+            msg.data = dingdingTimes;
+        } else if (timeType.getShowCorpwxCardtime() == 1) {
+            List<UserCorpwxTime> corpwxTimes = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>()
+                    .eq("corpwx_userid", user.getCorpwxUserid()).in("create_date", dateList));
+            msg.data = corpwxTimes;
+        }
+        return msg;
+    }
+
     private void selfUpdateToNextWorkFlow(Integer companyId, User auditTargetUser, List<Integer> targetRids, List<Department> allDepts) {
         List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                 new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", companyId)

+ 10 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -1734,6 +1734,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return msg;
     }
 
+    @Override
+    public HttpRespMsg getSimpleActiveUserList(HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, phone").eq("company_id", user.getCompanyId()).eq("is_active", 1));
+        msg.data = userList;
+        return msg;
+    }
+
 
     public boolean push(User user, String date) {
         //1,配置