瀏覽代碼

1. 修复车间专检人问题
2. 修复工时系统非项目的参与人问题

seyason 1 年之前
父節點
當前提交
1ccc797837

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

@@ -2198,7 +2198,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             project.setDepartmentName(first.get().getDepartmentName());
         }
         //项目参与人
-        List<Map<String, Object>> participator = participationMapper.getParticipator(id);
+        List<Map<String, Object>> participator = null;
+        //非项目参与人是公司全部人员
+        if (project.getIsPublic() == 1) {
+            participator = userMapper.selectList(new QueryWrapper<User>().select("id", "name", "job_number").eq("company_id", companyId).eq("is_active", 1)).stream().map(u -> {
+                HashMap<String, Object> map = new HashMap<>();
+                map.put("id", u.getId());
+                map.put("name", u.getName());
+                map.put("jobNumber", u.getJobNumber());
+                return map;
+            }).collect(Collectors.toList());
+        } else {
+            participator = participationMapper.getParticipator(id);
+        }
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active", 1));
         project.setParticipationList(participator);
         //项目日报审核人
         List<ProjectAuditor> auditorList = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().eq("project_id", id));

+ 32 - 14
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2959,6 +2959,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
             //获取当日已填写的人员报告
             List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
+            Company company = companyMapper.selectById(companyId);
+            TimeType timeType = timeTypeMapper.selectById(companyId);
+            //如果没有开通OA模块,有开通企业微信同步考勤,从user_corpwx_time表中获取请假时长
+            List<UserCorpwxTime> userCorpwxTimeList = null;
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+            if (company.getPackageOa() == 0 && timeType.getSyncCorpwxTime() == 1) {
+                userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().select("corpwx_userid, ask_leave_time").eq("company_id", companyId).eq("create_date", curDate).gt("ask_leave_time", 0));
+            }
             for (User u : userList) {
                 //入职日期在当前日期之后的,不要显示
                 if (u.getInductionDate() != null && u.getInductionDate().isAfter(curDate)) {
@@ -2970,20 +2978,30 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 user.put("departmentId", u.getDepartmentId());
                 Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
                 //获取角色请假情况 存在同条件下多条请假记录
-                List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(u.getId()) &&
-                        ((localDate.isAfter(ls.getStartDate()) || localDate.isEqual(ls.getStartDate())) && (localDate.isBefore(ls.getEndDate()) || localDate.isEqual(ls.getEndDate())))).collect(Collectors.toList());
-                if(leaveSheets.size()>0){
-                    Integer leaveType=leaveSheets.get(0).getLeaveType();
-                    BigDecimal leaveDays=new BigDecimal(0);
-                    BigDecimal leaveTimes=new BigDecimal(0);
-                    for (LeaveSheet leaveSheet : leaveSheets) {
-                        leaveDays=leaveDays.add(new BigDecimal(leaveSheet.getTimeDays()));
-                        leaveTimes=leaveTimes.add(new BigDecimal(leaveSheet.getTimeHours()));
-                    }
-                    user.put("leaveType",leaveType);
-                    if(leaveSheets.stream().anyMatch(ls->ls.getTimeType()==0)){
-                        user.put("leaveDays",leaveDays);
-                    }else user.put("leaveTimes",leaveTimes);
+                if (company.getPackageOa() == 1) {
+                    List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(u.getId()) &&
+                            ((localDate.isAfter(ls.getStartDate()) || localDate.isEqual(ls.getStartDate())) && (localDate.isBefore(ls.getEndDate()) || localDate.isEqual(ls.getEndDate())))).collect(Collectors.toList());
+                    if(leaveSheets.size()>0){
+                        Integer leaveType=leaveSheets.get(0).getLeaveType();
+                        BigDecimal leaveDays=new BigDecimal(0);
+                        BigDecimal leaveTimes=new BigDecimal(0);
+                        for (LeaveSheet leaveSheet : leaveSheets) {
+                            leaveDays=leaveDays.add(new BigDecimal(leaveSheet.getTimeDays()));
+                            leaveTimes=leaveTimes.add(new BigDecimal(leaveSheet.getTimeHours()));
+                        }
+                        user.put("leaveType",leaveType);
+                        if(leaveSheets.stream().anyMatch(ls->ls.getTimeType()==0)){
+                            user.put("leaveDays",leaveDays);
+                        }else {
+                            user.put("leaveTimes",leaveTimes);
+                        }
+                    }
+                } else if (wxCorpInfo != null && userCorpwxTimeList != null) {
+                    Optional<UserCorpwxTime> find = userCorpwxTimeList.stream().filter(uct -> uct.getCorpwxUserid().equals(u.getCorpwxUserid())).findFirst();
+                    if (find.isPresent()) {
+                        user.put("leaveType",0);//默认为事假
+                        user.put("leaveTimes", find.get().getAskLeaveTime());
+                    }
                 }
                 if (first.isPresent()) {
                     user.put("state", first.get().get("state"));

+ 5 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -85,6 +85,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     private DepartmentOtherManagerMapper departmentOtherManagerMapper;
     @Resource
+    private DepartmentQualityManagerMapper departmentQualityManagerMapper;
+    @Resource
     private ReportService reportService;
     @Resource
     WxCorpInfoService wxCorpInfoService;
@@ -289,14 +291,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("department_id", deptIncludeSubDeptIds));
             }
         } else if (checkType == 2) {
-            List<DepartmentOtherManager> otherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", deptId));
+            List<DepartmentQualityManager> otherManagers = departmentQualityManagerMapper.selectList(new QueryWrapper<DepartmentQualityManager>().eq("department_id", deptId));
             Department curDept = departmentMapper.selectById(deptId);
             if (curDept.getSuperiorId() != null && curDept.getSuperiorId() != 0) {
                 //取上级部门的其他负责人
-                otherManagers.addAll(departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", curDept.getSuperiorId())));
+                otherManagers.addAll(departmentQualityManagerMapper.selectList(new QueryWrapper<DepartmentQualityManager>().eq("department_id", curDept.getSuperiorId())));
             }
             if (otherManagers.size() > 0) {
-                List<String> userIds = otherManagers.stream().map(DepartmentOtherManager::getOtherManagerId).collect(Collectors.toList());
+                List<String> userIds = otherManagers.stream().map(DepartmentQualityManager::getQualityId).collect(Collectors.toList());
                 userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("id", userIds));
             }
         }