ソースを参照

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ggooalice 2 年 前
コミット
afb0110b0d

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -72,13 +72,14 @@ public class UserController {
     public HttpRespMsg getEmployeeList(@RequestParam Integer departmentId, String keyword,
                                        Integer status, Integer roleId,
                                        Integer onlyDirect,
+                                       String cursor,
                                        @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
-        return userService.getEmployeeList(departmentId, keyword, status, roleId, onlyDirect, pageIndex, pageSize, request);
+        return userService.getEmployeeList(departmentId, keyword, status, roleId, onlyDirect, cursor,pageIndex, pageSize, request);
     }
 
     @RequestMapping("/getSimpleActiveUserList")
-    public HttpRespMsg getSimpleActiveUserList(Integer departmentId,String keyword) {
-        return userService.getSimpleActiveUserList(departmentId,request,keyword);
+    public HttpRespMsg getSimpleActiveUserList(Integer departmentId,String keyword,String cursor) {
+        return userService.getSimpleActiveUserList(departmentId,request,keyword,cursor);
     }
 
     @RequestMapping("/getUserListByRole")

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/LeaveSheetMapper.java

@@ -2,7 +2,9 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.LeaveSheet;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.tomcat.jni.Local;
 
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -18,4 +20,6 @@ public interface LeaveSheetMapper extends BaseMapper<LeaveSheet> {
      List<LeaveSheet> summaryData(String keyword, String startDate, String endDate, Integer companyId);
 
     List<LeaveSheet> selectApprovalList();
+
+    List<LeaveSheet> selectLeave(String userId, String startDate, String endDate);
 }

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

@@ -23,7 +23,7 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg getUserInfo(String id);
 
-    HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, Integer pageIndex, Integer pageSize, HttpServletRequest request);
+    HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, String cursor, Integer pageIndex, Integer pageSize, HttpServletRequest request);
 
     HttpRespMsg deleteUser(String userId, HttpServletRequest request);
 
@@ -68,7 +68,7 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg batchUpdateRole(String userIds, Integer roleId, HttpServletRequest request);
 
-    HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword);
+    HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor);
 
     HttpRespMsg getUserListByRole(HttpServletRequest request);
 

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

@@ -886,7 +886,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     if (newList.size() == 0 && deleteList.size() == oldAuditorList.size()) {
                         //全部被删除了的情况,保留项目负责人
-                        if (inchargerId != null) {
+                        if (!StringUtils.isEmpty(inchargerId)) {
                             ProjectAuditor auditor = new ProjectAuditor();
                             auditor.setProjectId(id);
                             auditor.setAuditorId(inchargerId);
@@ -3142,11 +3142,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         projectMapper.updateById(project);
                     }else {
                         if(projectMapper.insert(project)>0){
-                            ProjectAuditor projectAuditor=new ProjectAuditor();
-                            projectAuditor.setAuditorId(project.getInchargerId());
-                            projectAuditor.setAuditorName(project.getInchargerName());
-                            projectAuditor.setProjectId(project.getId());
-                            projectAuditorMapper.insert(projectAuditor);
+                            if (!StringUtils.isEmpty(project.getInchargerId())) {
+                                ProjectAuditor projectAuditor=new ProjectAuditor();
+                                projectAuditor.setAuditorId(project.getInchargerId());
+                                projectAuditor.setAuditorName(project.getInchargerName());
+                                projectAuditor.setProjectId(project.getId());
+                                projectAuditorMapper.insert(projectAuditor);
+                            }
                         }
                     }
                     importCount++;
@@ -3738,11 +3740,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         projectMapper.updateById(project);
                     }else {
                         if(projectMapper.insert(project)>0){
-                            ProjectAuditor projectAuditor=new ProjectAuditor();
-                            projectAuditor.setAuditorId(project.getInchargerId());
-                            projectAuditor.setAuditorName(project.getInchargerName());
-                            projectAuditor.setProjectId(project.getId());
-                            projectAuditorMapper.insert(projectAuditor);
+                            if (!StringUtils.isEmpty(project.getInchargerId())) {
+                                ProjectAuditor projectAuditor=new ProjectAuditor();
+                                projectAuditor.setAuditorId(project.getInchargerId());
+                                projectAuditor.setAuditorName(project.getInchargerName());
+                                projectAuditor.setProjectId(project.getId());
+                                projectAuditorMapper.insert(projectAuditor);
+                            }
                         }
                     }
                     Integer id = project.getId();
@@ -7262,12 +7266,42 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             total=projectMapper.findCountWithEmpMonthHours(targetUser.getCompanyId(),startDate,endDate,null,null,userId,branchDepartment,deptIds);
         }
         if(resultList.size()!=0){
-            System.out.println(resultList.toString());
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
             float standardHours = Float.parseFloat(resultList.get(0).get("allday").toString())*days;
+            LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
+            LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
             for (Map<String, Object> map : resultList) {
+                //计算算请假时间
                 map.put("standardHours",standardHours);
                 map.put("workingTime",map.get("workingTime")==null?0:map.get("workingTime"));
-                map.put("leaveTime",map.get("leaveTime")==null?0:map.get("leaveTime"));
+                List<LeaveSheet> leaveSheets = leaveSheetMapper.selectLeave(map.get("userId").toString(),startDate,endDate);
+                float leaveTime = 0;
+                for (LeaveSheet leaveSheet : leaveSheets) {
+                    //当请假时间在当前月内的
+                    if ((leaveSheet.getStartDate().isEqual(localStartDate) || leaveSheet.getStartDate().isAfter(localStartDate)) && (leaveSheet.getEndDate().isEqual(localEndDate) || leaveSheet.getEndDate().isBefore(localEndDate))){
+                        leaveTime+=leaveSheet.getTimeHours();
+                    }else{
+                        float LeaveDay = leaveSheet.getEndDate().toEpochDay() - leaveSheet.getStartDate().toEpochDay() + 1;
+                        Float timeHours = leaveSheet.getTimeHours();
+                        //请假时间首尾跨月
+                        if(leaveSheet.getStartDate().isBefore(localStartDate) && leaveSheet.getEndDate().isAfter(localEndDate)){
+                            leaveTime+= standardHours;
+                        }else {
+                            //当请假时间开始时间跨月
+                            if (leaveSheet.getStartDate().isBefore(localStartDate)){
+                                //平均计算
+                                float DifDay = localStartDate.toEpochDay() - leaveSheet.getStartDate().toEpochDay();
+                                leaveTime+= timeHours*(DifDay/LeaveDay);
+                            }else {
+                                //当请假时间结束时间跨月
+                                float DifDay = leaveSheet.getEndDate().toEpochDay() - localEndDate.toEpochDay();
+                                leaveTime+= timeHours*(DifDay/LeaveDay);
+                            }
+                        }
+                    }
+                }
+                map.put("leaveTime",leaveTime);
+                //是否满足工时
                 if (Float.parseFloat(map.get("workingTime").toString()) < standardHours){
                     map.put("whether",0);
                 }else{
@@ -7275,7 +7309,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
         }
-        System.err.println(resultList.toString());
         Map<String,Object> map=new HashMap<>();
         map.put("result",resultList);
         map.put("total",total);

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

@@ -1117,12 +1117,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 String createDate = (String)a.get("date");
                 String name = (String)a.get("name");
                 String uid = (String)a.get("userId");
+                String corpwxUserid = (String)a.get("corpwxUserid");
 
                 if (lastName == null || !(lastName.get("name").equals(name) && lastName.get("dateStr").equals(createDate))) {
                     lastName = new HashMap<String, Object>();
                     lastName.put("dateStr", createDate);
                     lastName.put("name", name);
                     lastName.put("userId", uid);
+                    lastName.put("corpwxUserid", corpwxUserid);
                     nameList.add(lastName);
                     userDailyReportList = new ArrayList<>();
                     lastName.put("data", userDailyReportList);
@@ -1198,16 +1200,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 QueryWrapper<UserCorpwxTime> userCorpwxTimeQueryWrapper = new QueryWrapper<>();
                 if (nameList.size() > 0) {
                     for (Map map : nameList) {
-                        String name = (String)map.get("name");
+                        String corpwxUserid = (String)map.get("corpwxUserid");
                         String dateStr = (String)map.get("dateStr");
-                        userCorpwxTimeQueryWrapper.or(wrapper->wrapper.eq("name", name).eq("create_date", dateStr));
+                        userCorpwxTimeQueryWrapper.or(wrapper->wrapper.eq("corpwx_userid", corpwxUserid).eq("create_date", dateStr));
                     }
                     List<UserCorpwxTime> timeList = userCorpwxTimeMapper.selectList(userCorpwxTimeQueryWrapper);
                     //过滤匹配当前的数据
                     for (Map map : nameList) {
-                        String name = (String)map.get("name");
+                        String corpwxUserid = (String)map.get("corpwxUserid");
                         String dateStr = (String)map.get("dateStr");
-                        Optional<UserCorpwxTime> first = timeList.stream().filter(time -> time.getName().equals(name) && dtf.format(time.getCreateDate()).equals(dateStr)).findFirst();
+                        Optional<UserCorpwxTime> first = timeList.stream().filter(time -> time.getCorpwxUserid().equals(corpwxUserid) && dtf.format(time.getCreateDate()).equals(dateStr)).findFirst();
                         if (first.isPresent()) {
                             double wh = first.get().getWorkHours();
                             //赋值打卡时长

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

@@ -469,8 +469,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
     //根据关键词查询微信通讯录人员的openid
     //keyword不可为空格或空字符串,否则请求参数错误
-    private Object[] getOpenId(String corpId,String keyword) {
+    private HashMap<String, Object> getOpenId(String corpId,String keyword,String cursor) {
+        HashMap<String, Object> result = new HashMap<>();
         Object[] user = null;
+        String nextCursor = "";
+        result.put("user",user);
+        result.put("nextCursor",nextCursor);
         String url = "https://qyapi.weixin.qq.com/cgi-bin/service/contact/search?provider_access_token=ACCESS_TOKEN";
         HttpHeaders headers = new HttpHeaders();
         RestTemplate restTemplate = new RestTemplate();
@@ -486,8 +490,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             requestMap.put("query_word", keyword);
             requestMap.put("query_type", 1);
             requestMap.put("query_range", 1);
-            requestMap.put("limit", 200);
-            //requestMap.put("cursor", pageSize);
+            requestMap.put("limit", 20);
+            requestMap.put("cursor", cursor);
             HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
             ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
             if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
@@ -504,6 +508,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     }else{
                         System.err.println("==================通讯录查询请求无userid列表===================");
                     }
+                    JSONObject isLast = respJson.getJSONObject("is_last");
+                    if (isLast!=null){
+                        if (!respJson.getBoolean("is_last")){
+                            nextCursor = respJson.getString("next_cursor");
+                        }
+                    }
                 }else {
                     System.err.println("===================通讯录查询请求失败=================");
                 }
@@ -511,12 +521,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         }else {
             System.out.println("=============token查询失败=================");
         }
-        return user;
+        return result;
     }
 
     //获取员工的列表
     @Override
-    public HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, Integer pageIndex, Integer pageSize, HttpServletRequest request) {
+    public HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, String cursor, Integer pageIndex, Integer pageSize, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Integer WXCompanyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
@@ -526,17 +536,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         //当企业开启了微信通讯录的情况下
         if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && departmentId == -1){
             System.out.println("====================开始查询通讯录名单======================");
-            Object[] users = getOpenId(wxCorpInfo.getCorpid(), keyword);
+            HashMap<String, Object> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
+            Object users = result.get("user");
             if (users!=null){
-                System.err.println("=========================查询到的users列表为:"+users[0]);
                 List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
                 data.put("records",realUser);
+                data.put("nextCursor",result.get("nextCursor"));
                 return httpRespMsg;
             }else {
                 System.err.println("======================user列表没有查询到数据===========================");
                 System.err.println("======================httpRespMsg返回空集合===========================");
                 ArrayList<Object> records = new ArrayList<>();
                 data.put("records",records);
+                data.put("nextCursor","");
                 return httpRespMsg;
             }
         }else {
@@ -619,6 +631,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 }
                 resultMap.put("records", list);
                 resultMap.put("total", total);
+                resultMap.put("nextCursor", "");
                 httpRespMsg.data = resultMap;
             } catch (NullPointerException e) {
                 //httpRespMsg.setError("验证失败");
@@ -2128,10 +2141,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     }
 
     @Override
-    public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword) {
+    public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor) {
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
+        String nextCursor = "";
         QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id, name, phone, job_number, department_id").eq("company_id", user.getCompanyId()).eq("is_active", 1);
         if (departmentId != null) {
             //获取全部子部门
@@ -2145,9 +2159,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
         //当企业开启了微信通讯录的情况下
         if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
-            Object[] users = getOpenId(wxCorpInfo.getCorpid(), keyword);
+            HashMap<String, Object> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
+            HashMap<String, Object> msgResult = new HashMap<>();
             List<User> retUser = new ArrayList<>();
-            msg.data = retUser;
+            nextCursor = result.get("nextCursor").toString();
+            Object users = result.get("user");
+            msgResult.put("retUser",retUser);
+            msgResult.put("nextCursor",nextCursor);
+            msg.data = result;
             if (users!=null){
                 List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
                 for (User item : userList) {

+ 55 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -711,6 +711,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                                         needRecaculate = true;
                                     }
                                 } else if (leaveText.startsWith("外出")) {
+
                                     String string = holiday.getJSONObject("sp_description").getJSONArray("data").getJSONObject(m).getString("text");
                                     String[] s = string.split(" |\\~");
                                     //获取到外出的开始时间和结束时间
@@ -718,14 +719,65 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                                     if (s.length < 5) {
                                         isOldFormat = true;
                                     }
-                                    String outEnd = isOldFormat ? s[3] : s[4];
-                                    String outStart = s[1];
+                                    //获取外出的日期; 9/1格式
+                                    String dateStart = localDate.getYear() + "/" + s[0];
+                                    String dateEnd = localDate.getYear() + "/" + (isOldFormat ? s[2] : s[3]);
+                                    LocalDate sDate = LocalDate.parse(dateStart, mdFormat);
+                                    LocalDate eDate = LocalDate.parse(dateEnd, mdFormat);
+                                    String outEnd = "";
+                                    String outStart = "";
+
+                                    if (sDate.isEqual(eDate)) {
+                                        //外出在一天内
+                                        outEnd = isOldFormat ? s[3] : s[4];
+                                        outStart = s[1];
+                                    } else {
+                                        if (showLog) System.out.println("跨天外出===");
+                                        if (showLog)
+                                            System.out.println("当天==" + localDate + ", sDate=" + sDate + ", 比较=" + (localDate.isEqual(sDate)));
+                                        //跨天外出,获取期间的非工作日,加进去
+                                        List<LocalDate> localDates = WorkDayCalculateUtils.getNonWorkDaysListInRange(dtf.format(sDate) ,dtf.format(eDate));
+                                        for (LocalDate curLdate : localDates) {
+                                            if (!betweenNonWorkDays.stream().anyMatch(be->be.isEqual(curLdate))) {
+                                                if (showLog) System.out.println("含非工作日请假:"+curLdate);
+                                                betweenNonWorkDays.add(curLdate);
+                                            }
+                                        }
+                                        if (betweenNonWorkDays.size() > 0) {
+                                            betweenTotalDays = (int)sDate.until(eDate, ChronoUnit.DAYS) + 1;
+                                            if (showLog) System.out.println("总跨度外出天数为:"+betweenTotalDays);
+                                        }
+                                        if (localDate.isEqual(sDate)) {
+                                            //当前日期第一天,需判断上下午半天请假的情况
+                                            if (showLog) System.out.println("跨天外出第一天outStart为:"+outStart);
+                                            if (outStart.equals("上午")) {
+                                                outStart = baseMorningStart;
+                                            } else if (outStart.equals("下午")) {
+                                                outStart = baseAfternoonStart;
+                                            }
+                                            //跨天请假的第一天,结束时间默认为18:00
+                                            outEnd = baseAfternoonEnd;//上午开始请假的算全天
+                                        } else if (localDate.isEqual(eDate)) {
+                                            //当前日期就是最后一天,需判断上下午半天请假的情况
+                                            if (outEnd.equals("下午")) {
+                                                outEnd = baseAfternoonEnd;//请假到最后一天的下午,就算是全天
+                                            } else if (outEnd.equals("上午")) {
+                                                //上午外出
+                                                outEnd = baseMorningEnd;
+                                            }
+                                            outStart = baseMorningStart;
+                                        } else {
+                                            //中间日期就是全天
+                                            outStart = baseMorningStart;
+                                            outEnd = baseAfternoonEnd;
+                                            if (showLog) System.out.println("===中间天请假===");
+                                        }
+                                    }
                                     //获取外出的最早的开始时间和最晚的结束时间最为当天考勤的最早和最晚时间
                                     if (ct.getStartTime().equals("00:00") || ct.getStartTime().compareTo(outStart) > 0) {
                                         ct.setStartTime(outStart);
                                         needRecaculate = true;
                                     }
-
                                     if (ct.getEndTime().compareTo(outEnd) < 0) {
                                         ct.setEndTime(outEnd);
                                         needRecaculate = true;

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -261,9 +261,15 @@ public class TimingTask {
                leaveSheet.setOwnerName(user.getName());
                leaveSheet.setStartDate(LocalDate.parse(String.valueOf(map.get("startDate")),dtf));
                leaveSheet.setEndDate(LocalDate.parse(String.valueOf(map.get("endDate")),dtf));
-               leaveSheet.setTimeType(Integer.parseInt(String.valueOf(map.get("timeType"))));
+                int timeType = Integer.parseInt(String.valueOf(map.get("timeType")));
+                leaveSheet.setTimeType(timeType);
+               if (timeType == 0){
+                   TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
+                   leaveSheet.setTimeHours((Float) map.get("timeDays")*allDay.getAllday());
+               }else {
+                   leaveSheet.setTimeHours((Float) map.get("timeHours"));
+               }
                leaveSheet.setTimeDays((Float) map.get("timeDays"));
-               leaveSheet.setTimeHours((Float) map.get("timeHours"));
                leaveSheet.setLeaveType(Integer.parseInt(String.valueOf(map.get("leaveType"))));
                leaveSheet.setProcinstId(String.valueOf(map.get("procinstId")));
                leaveSheet.setGmtFinished(String.valueOf(map.get("gmtFinished")));

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/LeaveSheetMapper.xml

@@ -47,4 +47,11 @@
        select * from leave_sheet
        where procinst_id is not NULL AND procinst_id != '' and status = 1 and DATEDIFF(NOW(),indate) &lt; 30
    </select>
+
+    <!-- 查询某段时间内的请假列表 -->
+    <select id="selectLeave" resultType="com.management.platform.entity.LeaveSheet">
+        select * from leave_sheet
+        where owner_id = #{userId} and leave_sheet.status=0
+        and leave_sheet.start_date &lt;=#{endDate} and leave_sheet.end_date &gt;=#{startDate}
+    </select>
 </mapper>

+ 4 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -1216,18 +1216,13 @@
     </select>
 
     <select id="getEmpMonthHours" resultType="java.util.Map">
-        select us.name,us.corpwx_userid as corpwxUserId,us.job_number as jobNumber,dp.department_name as departmentName,dp.corpwx_deptid as corpwxDeptId,
+        select us.id as userId,us.name,us.corpwx_userid as corpwxUserId,us.job_number as jobNumber,dp.department_name as departmentName,dp.corpwx_deptid as corpwxDeptId,
         (select allday from time_type te
         where te.company_id=#{companyId}) as allday,
         (select SUM(report.working_time) from report
         where report.creator_id=us.id and report.state=1
         and report.create_date &gt;=#{startDate} and report.create_date &lt;=#{endDate})
-        as workingTime,
-        (select SUM(leave_sheet.time_hours) from leave_sheet
-        where leave_sheet.owner_id=us.id and leave_sheet.status=0
-        and leave_sheet.start_date &gt;=#{startDate}
-        and leave_sheet.end_date &lt;=#{endDate})
-        as leaveTime
+        as workingTime
         from user us
         left join department dp on dp.department_id=us.department_id
         where us.company_id=#{companyId}
@@ -1257,9 +1252,8 @@
         select count(1)
         from(select us.name,dp.department_name  as departmentName,
         (select SUM(report.working_time) from report
-        left join task on task.id=report.task_id
-        where report.creator_id=us.id and task_id is not null
-        and task.create_date &gt;=#{startDate} and task.create_date &lt;=#{endDate})
+        where report.creator_id=us.id
+        and report.create_date &gt;=#{startDate} and report.create_date &lt;=#{endDate})
         as workingTime
         from user us
         left join  department dp on dp.department_id=us.department_id

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

@@ -294,7 +294,7 @@
 
     <!--新版获取待审核的列表,一次性获取全部 -->
     <select id="getAuditReportList" resultType="java.util.Map">
-        SELECT a.id, user.id as userId, user.name, DATE_FORMAT(a.create_date, '%Y-%m-%d') as date, a.project_id as projectId, b.project_code AS projectCode, b.project_name AS project, a.working_time AS time, a.content, a.state, a.time_type as timeType,
+        SELECT a.id, user.id as userId,user.corpwx_userid as corpwxUserid, user.name, DATE_FORMAT(a.create_date, '%Y-%m-%d') as date, a.project_id as projectId, b.project_code AS projectCode, b.project_name AS project, a.working_time AS time, a.content, a.state, a.time_type as timeType,
         a.cost, a.report_time_type as reportTimeType, a.start_time as startTime,
         a.end_time as endTime, b.incharger_id as inchargerId,dept.department_name as departmentName,
         a.creator_id as creatorId, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,