Pārlūkot izejas kodu

北森同步
依斯呗修改

Min 1 gadu atpakaļ
vecāks
revīzija
09300f6a38

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

@@ -1470,14 +1470,14 @@ public class ProjectController {
 
     //依斯倍定制 分组耗用进度表
     @RequestMapping("/groupExpendProcessList")
-    public HttpRespMsg groupExpendProcessList(String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return projectService.groupExpendProcessList(startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg groupExpendProcessList(String startDate,String endDate,Integer projectId,Integer pageIndex,Integer pageSize){
+        return projectService.groupExpendProcessList(startDate,endDate,projectId,pageIndex,pageSize);
     }
 
     //依斯倍定制 导出分组耗用进度表
     @RequestMapping("/exportGroupExpendProcessList")
-    public HttpRespMsg exportGroupExpendProcessList(String startDate,String endDate){
-        return projectService.exportGroupExpendProcessList(startDate,endDate);
+    public HttpRespMsg exportGroupExpendProcessList(String startDate,String endDate,Integer projectId){
+        return projectService.exportGroupExpendProcessList(startDate,endDate,projectId);
     }
 
     //依斯倍定制 项目耗用进度表

+ 0 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskGroupController.java

@@ -201,10 +201,8 @@ public class TaskGroupController {
             item.setId(taskGroup.getId());
             if (taskGroup.getManDay() == null) {
                 item.setManDay(0.0);
-                item.setFirstManDay(0.0);
             } else {
                 item.setManDay(taskGroup.getManDay());
-                item.setFirstManDay(taskGroup.getManDay());
                 totalManDay += taskGroup.getManDay();
             }
             addList.add(item);

+ 72 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java

@@ -68,13 +68,9 @@ public class UserWithBeisenController {
             httpRespMsg.setError("北森基础数据配置未完成,请联系服务商完成配置");
             return httpRespMsg;
         }
-//        if(companyId==5978){
-//            beisenConfig.setAppKey("70FD83474FB946E5A6A122BB2989E8D9");
-//            beisenConfig.setAppSecret("F494856D0BCC49D18C63429D4F2CB42EDE9480D5C075449E9C97E7AEA5C7D9E1");
-//        }
         List<UserWithBeisen> allBeisenList = userWithBeisenService.list(new LambdaQueryWrapper<UserWithBeisen>().eq(UserWithBeisen::getCompanyId, companyId));
         List<UserWithBeisen> userWithBeisenList=new ArrayList<>();
-        List<JSONArray> byTimeWindow = BeiSenUtils.getByTimeWindow("",startTime,stopTime,beisenConfig.getAppKey(),beisenConfig.getAppSecret());
+        List<JSONArray> byTimeWindow = BeiSenUtils.getByTimeWindow("",startTime,stopTime,companyId,beisenConfig.getAppKey(),beisenConfig.getAppSecret());
         for (JSONArray array : byTimeWindow) {
             for (int i = 0; i < array.size(); i++) {
                 UserWithBeisen userWithBeisen=new UserWithBeisen();
@@ -140,14 +136,16 @@ public class UserWithBeisenController {
             return msg;
         }
         //todo 获取到指定日期的考勤数据
-        JSONArray attendanceStatistics = BeiSenUtils.getAttendanceStatistics(startDate, endDate, beisenConfig.getAppKey(), beisenConfig.getAppSecret(), 1, 100);
+        JSONArray attendanceStatistics=new JSONArray();
         //todo 获取到指定日期的加班数据
         List<LocalDate> workDaysListInRange = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, 1);
         JSONArray allOverTimeList=new JSONArray();
         List<UserFvTime> userFvTimeList=new ArrayList<>();
         for (LocalDate localDate : workDaysListInRange) {
+            JSONArray statisticList = BeiSenUtils.getAttendanceStatistics(df.format(localDate), df.format(localDate), beisenConfig.getAppKey(), beisenConfig.getAppSecret(), 1, 100);
             JSONArray overTimeList = BeiSenUtils.getOverTimeList(df.format(localDate), beisenConfig.getAppKey(), beisenConfig.getAppSecret(), 1, 100);
             allOverTimeList.addAll(overTimeList);
+            attendanceStatistics.addAll(statisticList);
         }
         for (LocalDate localDate : workDaysListInRange) {
             Stream<JSONObject> swipingCardsStream = attendanceStatistics.stream().map(item -> (JSONObject) item);
@@ -209,5 +207,73 @@ public class UserWithBeisenController {
         return msg;
     }
 
+
+    @RequestMapping("/getAttendanceStatisticWithUser")
+    public HttpRespMsg getAttendanceStatisticWithUser(String createDate){
+        HttpRespMsg msg=new HttpRespMsg();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        DateTimeFormatter df1=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        DateTimeFormatter df2=DateTimeFormatter.ofPattern("HH:mm");
+        User user = userMapper.selectById(request.getHeader("token"));
+        Integer companyId = user.getCompanyId();
+        TimeType timeType = timeTypeMapper.selectById(companyId);
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
+        List<UserWithBeisen> userWithBeisenList = userWithBeisenService.list(new LambdaQueryWrapper<UserWithBeisen>().eq(UserWithBeisen::getCompanyId, companyId));
+        BeisenConfig beisenConfig = beisenConfigMapper.selectById(companyId);
+        if(beisenConfig==null){
+            msg.setError("北森基础数据配置未完成,请联系服务商完成配置");
+            return msg;
+        }
+        //todo 获取到指定日期的考勤数据
+        //todo 获取到指定日期的加班数据
+        Optional<UserWithBeisen> withBeisen = userWithBeisenList.stream().filter(u -> u.getUserId().equals(user.getId())).findFirst();
+        if(!withBeisen.isPresent()){
+            msg.setError("当前员工在北森系统中不存在,请完成录入员工信息");
+            return msg;
+        }
+        JSONObject item = BeiSenUtils.getAttendanceStatisticWithUser(createDate,withBeisen.get().getUserId(), beisenConfig.getAppKey(), beisenConfig.getAppSecret());
+        JSONArray allOverTimeList = BeiSenUtils.getScheduledOverTimeRangeList(createDate,createDate,withBeisen.get().getUserId(), beisenConfig.getAppKey(), beisenConfig.getAppSecret());
+        //获取当前数据下的人员工号对应到工时管家
+        String cardNumber = item.getString("staffId");
+        Optional<User> first = userList.stream().filter(f -> f.getJobNumber().equals(cardNumber)).findFirst();
+        //todo: 获取早晚打卡时间
+        String firstCard = item.getString("firstCard");
+        String lastCard = item.getString("lastCard");
+        //获取最晚下班时间
+        if(first.isPresent()){
+            boolean workDay = WorkDayCalculateUtils.isWorkDay(LocalDate.parse(createDate,df));
+            //todo:针对景昱 工作日默认以8小时工作制度加上加班时长 非工作日以加班时长为准
+            Double workTime=8.0;
+            Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
+            Optional<UserWithBeisen> beisen = userWithBeisenList.stream().filter(u -> u.getJobNumber() != null && u.getJobNumber().equals(first.get().getJobNumber())).findFirst();
+            if(beisen.isPresent()){
+                List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
+                        && a.getIntValue("ApproveStatus") == 2).collect(Collectors.toList());
+                if(overTimeList.size()>0){
+                    double actualOverTimeDuration = overTimeList.stream().mapToDouble(i -> i.getDouble("ActualOverTimeDuration")).sum();
+                    if(workDay){
+                        workTime= workTime+actualOverTimeDuration;
+                    }else {
+                        workTime= actualOverTimeDuration;
+                    }
+                }
+            }
+            UserFvTime userFvTime=new UserFvTime();
+            userFvTime.setWorkDate(LocalDate.parse(createDate,df));
+            userFvTime.setStartTime(!StringUtils.isEmpty(firstCard)?firstCard:"08:30");
+            userFvTime.setEndTime(!StringUtils.isEmpty(lastCard)?lastCard:"17:30");
+            userFvTime.setUserId(first.get().getId());
+            userFvTime.setCompanyId(companyId);
+            userFvTime.setWorkHours(workTime.floatValue());
+            UserFvTime one = userFvTimeService.getOne(new LambdaQueryWrapper<UserFvTime>().eq(UserFvTime::getCompanyId, companyId).eq(UserFvTime::getUserId, first.get().getId()).eq(UserFvTime::getWorkDate, LocalDate.parse(createDate,df)));
+            if(one!=null){
+                userFvTime.setId(one.getId());
+            }
+            userFvTimeService.saveOrUpdate(userFvTime);
+            msg.setData(userFvTime);
+        }
+        return msg;
+    }
+
 }
 

+ 0 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskGroup.java

@@ -76,12 +76,6 @@ public class TaskGroup extends Model<TaskGroup> {
     @TableField(exist = false)
     private String estimatedWorkTime;
 
-    /**
-     * 首次设置的预估工时:人天
-     */
-    @TableField("first_man_day")
-    private Double firstManDay;
-
 
     @Override
     protected Serializable pkVal() {

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

@@ -279,9 +279,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportUserProjectProcessList(Integer deptId, String userId, Integer projectId);
 
-    HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer pageIndex,Integer pageSize);
+    HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize);
 
-    HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate);
+    HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate,Integer projectId);
 
     HttpRespMsg projectExpendProcessList(String startDate,String endDate,Integer projectId, Integer categoryId, String userId, Integer pageIndex, Integer pageSize);
 

+ 27 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -12737,7 +12737,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer pageIndex,Integer pageSize) {
+    public HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
@@ -12777,7 +12777,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             pageIndex=-1;
             pageSize=-1;
         }
-        IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize), new LambdaQueryWrapper<Project>().in(Project::getId, projectIds).eq(Project::getCompanyId, companyId));
+        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<Project>().in(Project::getId, projectIds).eq(Project::getCompanyId, companyId);
+        if(projectId!=null){
+            queryWrapper.eq(Project::getId,projectId);
+        }
+        IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize),queryWrapper);
         List<Project> projectList = projectIPage.getRecords();
         //是否具有查看全部数据的权限
         //针对依斯呗 指定部门
@@ -12853,8 +12857,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                     item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
+                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
                                     double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
                                     double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
+                                    if(afterSetPlanHour>0){
+                                        planHour=planHour-afterSetPlanHour;
+                                    }
                                     item.put("process",percentFormat.format(realHour/planHour));
                                 }else {
                                     item.put("planHour",0);
@@ -12903,8 +12911,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                     item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
+                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
                                     double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
                                     double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
+                                    if(afterSetPlanHour>0){
+                                        planHour=planHour-afterSetPlanHour;
+                                    }
                                     item.put("process",percentFormat.format(realHour/planHour));
                                 }else {
                                     item.put("planHour",0);
@@ -12957,8 +12969,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                     item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
                                     item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
+                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
                                     double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
                                     double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
+                                    if(afterSetPlanHour>0){
+                                        planHour=planHour-afterSetPlanHour;
+                                    }
                                     item.put("process",percentFormat.format(realHour/planHour));
                                 }else {
                                     item.put("planHour",0);
@@ -12992,11 +13008,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate) {
+    public HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate,Integer projectId) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
         percentFormat.setMaximumFractionDigits(2);
-        HttpRespMsg resultMsg = groupExpendProcessList(startDate,endDate,null,null);
+        HttpRespMsg resultMsg = groupExpendProcessList(startDate,endDate,projectId,null,null);
         Map<String, Object> msgData = (Map<String, Object>) resultMsg.getData();
         List<Map<String, Object>> mapList = (List<Map<String, Object>>) msgData.get("record");
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
@@ -13124,8 +13140,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<String> projectIdList = mapList.stream().map(m -> String.valueOf(m.get("projectId"))).distinct().collect(Collectors.toList());
         //根据每个项目合并项目列表
         Integer projectNum=rowNum;
-        for (String projectId : projectIdList) {
-            List<Map<String, Object>> maps = listMapGroupList.get(projectId);
+        for (String pid : projectIdList) {
+            List<Map<String, Object>> maps = listMapGroupList.get(pid);
             if(maps.size()>1){
                 sheet.addMergedRegion(new CellRangeAddress(projectNum,projectNum+maps.size()-1,0,0));
             }
@@ -13143,7 +13159,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         for (Map<String, Object> map : mapList) {
             list.add(String.valueOf(map.get("projectName")));
-            list.add(String.valueOf(map.get("corpwxDeptId")));
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                list.add("$departmentName="+map.get("corpwxDeptId")+"$");
+            }else {
+                list.add(String.valueOf(map.get("department_name")));
+            }
             list.add(String.valueOf(map.get("groupName")));
             list.add(String.valueOf(map.get("planHour")));
             list.add(String.valueOf(map.get("normalHour")));

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

@@ -2009,7 +2009,7 @@ public class TimingTask {
         List<BeisenConfig> beisenConfigs = beisenConfigMapper.selectList(null);
         for (BeisenConfig beisenConfig : beisenConfigs) {
             if(beisenConfig!=null){
-                List<JSONArray> byTimeWindow = BeiSenUtils.getByTimeWindow("",time,time,beisenConfig.getAppKey(),beisenConfig.getAppSecret());
+                List<JSONArray> byTimeWindow = BeiSenUtils.getByTimeWindow("",time,time,beisenConfig.getCompanyId(),beisenConfig.getAppKey(),beisenConfig.getAppSecret());
                 for (JSONArray array : byTimeWindow) {
                     for (int i = 0; i < array.size(); i++) {
                         UserWithBeisen userWithBeisen=new UserWithBeisen();

+ 77 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeiSenUtils.java

@@ -83,7 +83,7 @@ public class BeiSenUtils {
     /**
      * 获取人员数据
      * */
-    public static List<JSONArray> getByTimeWindow(String scrollId,String startTime,String stopTime,String appkey,String appSecret){
+    public static List<JSONArray> getByTimeWindow(String scrollId,String startTime,String stopTime,Integer companyId,String appkey,String appSecret){
         List<JSONArray> resultList=new ArrayList<>();
         String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/GetByTimeWindow";
         HttpHeaders headers = new HttpHeaders();
@@ -97,6 +97,15 @@ public class BeiSenUtils {
         requestMap.put("timeWindowQueryType",1);
         requestMap.put("startTime",startTime+"T00:00:00");
         requestMap.put("stopTime",stopTime+"T23:59:59");
+        List<String> columns=new ArrayList<>();
+        columns.add("JobNumber");
+        columns.add("MobilePhone");
+        columns.add("Name");
+        columns.add("StaffID");
+        columns.add("UserID");
+        if(companyId!=null && companyId==5789){
+            requestMap.put("columns",columns);
+        }
         System.out.println("--------headers请求头数据-------"+headers);
         if(!StringUtils.isEmpty(scrollId)){
             requestMap.put("scrollId",scrollId);
@@ -111,7 +120,7 @@ public class BeiSenUtils {
                 resultList.add(respJson.getJSONArray("data"));
                 String nextScrollId = respJson.getString("scrollId");
                 if(!StringUtils.isEmpty(nextScrollId)&&respJson.getJSONArray("data").size()>0){
-                    List<JSONArray> byTimeWindow = getByTimeWindow(nextScrollId,startTime,stopTime,appkey,appSecret);
+                    List<JSONArray> byTimeWindow = getByTimeWindow(nextScrollId,startTime,stopTime,companyId,appkey,appSecret);
                     resultList.addAll(byTimeWindow);
                 }
             }
@@ -242,4 +251,70 @@ public class BeiSenUtils {
         return lastJSONArray;
     }
 
+
+    /**
+     * 获取指定人员指定日期考勤数据
+     * */
+    public static JSONObject getAttendanceStatisticWithUser(String date,String userId,String appkey,String appSecret){
+        String url = "https://openapi.italent.cn/AttendanceOpen/api/v1/AttendanceStatistics/GetAttendanceStatistics";
+        HttpHeaders headers = new HttpHeaders();
+        RestTemplate restTemplate = new RestTemplate();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        String accessToken = getToken(appkey,appSecret);
+        System.out.println("--------Bearer TOKEN--------"+accessToken);
+        headers.add("Authorization","Bearer "+accessToken);
+        JSONObject requestMap = new JSONObject();
+        requestMap.put("date",date);
+        requestMap.put("staffId",userId);
+        System.out.println("--------headers请求头数据-------"+headers);
+        System.out.println("--------requestMap请求参数-------"+requestMap);
+        HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
+        ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
+        if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp= ResponseEntity.getBody();
+            JSONObject respJson = JSONObject.parseObject(resp);
+            if(respJson.getIntValue("Code")==200){
+                JSONObject data = respJson.getJSONObject("data");
+                return data;
+            }
+        }
+        return new JSONObject();
+    }
+
+
+    /**
+     * 获取指定人员指定日期加班数据
+     * */
+    public static JSONArray getScheduledOverTimeRangeList(String startDate,String endDate,String userId,String appkey,String appSecret){
+        String url = "https://openapi.italent.cn/AttendanceOpen/api/v1/AttendanceOvertime/GetScheduledOverTimeRangeList";
+        HttpHeaders headers = new HttpHeaders();
+        RestTemplate restTemplate = new RestTemplate();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        String accessToken = getToken(appkey,appSecret);
+        System.out.println("--------Bearer TOKEN--------"+accessToken);
+        headers.add("Authorization","Bearer "+accessToken);
+        JSONObject requestMap = new JSONObject();
+        requestMap.put("startDate",startDate);
+        List<String> staffIds=new ArrayList<>();
+        staffIds.add(userId);
+        requestMap.put("stopDate",endDate);
+        requestMap.put("staffIds",staffIds);
+        System.out.println("--------headers请求头数据-------"+headers);
+        System.out.println("--------requestMap请求参数-------"+requestMap);
+        HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
+        ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
+        JSONArray lastJSONArray=new JSONArray();
+        if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp= ResponseEntity.getBody();
+            JSONObject respJson = JSONObject.parseObject(resp);
+            if(respJson.getIntValue("Code")==200){
+                JSONArray data = respJson.getJSONArray("data");
+                return data;
+            }
+        }
+        return new JSONArray();
+    }
+
 }

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

@@ -1897,7 +1897,7 @@
     <select id="groupExpendProcessList" resultType="java.util.Map">
         SELECT p.project_name AS projectName,p.id AS projectId,tg.id AS groupId,d.department_name,d.department_id AS deptId,d.corpwx_deptid AS corpwxDeptId,tg.name AS groupName,
         IFNULL(r.realHour,0) AS realHour,IFNULL(r.realCost,0) AS realCost,IFNULL(r.normalHour,0) as normalHour,IFNULL(r.overHour,0) as overHour,
-        IFNULL(tg.first_man_day*8,0) AS planHour,IFNULL((SELECT SUM(change_man_day*8) FROM `group_budget_review` WHERE group_id=tg.`id` AND `status`=1),0) AS afterSetPlanHour
+        IFNULL(tg.man_day*8,0) AS planHour,IFNULL((SELECT SUM(change_man_day*8) FROM `group_budget_review` WHERE group_id=tg.`id` AND `status`=1),0) AS afterSetPlanHour
         FROM task_executor te
         LEFT JOIN task t ON t.id=te.task_id
         LEFT JOIN user u ON te.executor_id=u.id
@@ -1906,7 +1906,7 @@
         LEFT JOIN department d ON d.department_id=u.department_id
         LEFT JOIN (
         SELECT SUM(working_time) AS realHour,SUM(cost) AS realCost,(SUM(working_time)-SUM(overtime_hours)) AS normalHour,SUM(overtime_hours) AS overHour,group_id,dept_id
-        FROM report  WHERE create_date BETWEEN #{startDate} AND #{endDate} AND state=1 AND project_id IS NOT NULL AND company_id=#{companyId} GROUP BY group_id,dept_id) r ON r.group_id=tg.`id` and r.dept_id=u.department_id
+        FROM report  WHERE state=1 <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''"> AND create_date BETWEEN #{startDate} AND #{endDate} </if>AND project_id IS NOT NULL AND company_id=#{companyId} GROUP BY group_id,dept_id) r ON r.group_id=tg.`id` and r.dept_id=u.department_id
         WHERE u.company_id=#{companyId}
         AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
         <if test="userId!=null and userId!=''">

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

@@ -11,12 +11,11 @@
         <result column="incharger_id" property="inchargerId" />
         <result column="wbs_code" property="wbsCode" />
         <result column="man_day" property="manDay" />
-        <result column="first_man_day" property="firstManDay" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, project_id, task_group_code, name, incharger_id, wbs_code, man_day, first_man_day
+        id, project_id, task_group_code, name, incharger_id, wbs_code, man_day
     </sql>
 
     <select id="selectReallyTimeWithMap" resultType="java.util.Map">

+ 12 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -1505,7 +1505,7 @@ export default {
   data() {
     return {
       screeningCondition: { // 筛选条件的判断
-        project: [4, 8, 9, 10, 11, 14, 15, 17, 19, 20, 21, 22, 24], // 项目筛选条件 (不等于)
+        project: [4, 8, 9, 10, 11, 14, 15, 17, 19, 20, 21, 22], // 项目筛选条件 (不等于)
         months: [14, 15], // 月份筛选条件 (等于)
         monthRange: [19], // 月份区间筛选条件 (等于)
         staff: [6, 8, 9, 19, 11, 14, 18, 23, 25, 26], // 人员筛选条件 (等于)
@@ -2080,7 +2080,9 @@ export default {
             },
             getList(e) {
               let noUserList = [16, 17, 18, 19, 20, 21, 22, 24, 25, 26,27]
-              if(this.ins == 15) {
+              if(this.ins == 24) {
+                this.rangeDatas = []
+              } else if(this.ins == 15) {
                 this.rangeDatas = null
               } else if(!e){
                 this.rangeDatas = this.getCurrentRangeTime()
@@ -2336,6 +2338,7 @@ export default {
         } else if(this.ins == 24) {
           fName = '分组耗用进度表' + '.xlsx'
           url = "/project/exportGroupExpendProcessList"
+          this.proJuctId ? parameter.projectId = this.proJuctId : ''
           sl.startDate = this.rangeDatas[0]
           sl.endDate = this.rangeDatas[1]
         } else if(this.ins == 25) {
@@ -3876,11 +3879,16 @@ export default {
     // 分组耗用进度表
     async getConsumptionSchedule() {
       let parameter = {
-        startDate: this.rangeDatas[0],
-        endDate: this.rangeDatas[1],
+        // startDate: this.rangeDatas[0],
+        // endDate: this.rangeDatas[1],
         pageIndex: this.page,
         pageSize: this.size,
       }
+      if( this.rangeDatas &&  this.rangeDatas.length > 0) {
+        parameter.startDate = this.rangeDatas[0]
+        parameter.endDate = this.rangeDatas[1]
+      }
+      this.proJuctId ? parameter.projectId = this.proJuctId : ''
       this.listLoading = true
       let { data } = await this.postData('/project/groupExpendProcessList', {
         ...parameter