Преглед на файлове

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason преди 1 година
родител
ревизия
09aea41fb4

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

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

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

@@ -173,7 +173,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     Long userProjectProcessCount(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds);
 
-    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds);
+    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds,Integer start,Integer size);
 
     Long groupExpendProcessListCount(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds);
 

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

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

+ 51 - 83
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -12630,7 +12630,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg groupExpendProcessList(String startDate, String endDate) {
+    public HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer pageIndex,Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
@@ -12641,11 +12641,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<Department> allDeptList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
         List<Map<String,Object>> resultList;
         Long total;
+        Integer size=null;
+        Integer start=null;
+        if(pageIndex!=null&&pageSize!=null){
+            size=pageSize;
+            start=(pageIndex-1)*size;
+        }
         //是否具有查看全部数据的权限
         if(!viewAll){
             if(!incharger){
                 //只能查看本人的数据
-                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,null);
+                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,null,start,size);
                 total=projectMapper.groupExpendProcessListCount(user.getId(),companyId,startDate,endDate,null);
             }else {
                 List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
@@ -12660,50 +12666,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
                     deptIds.addAll(branchDepartment);
                 }
-                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,deptIds);
+                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,deptIds,start,size);
                 total=projectMapper.groupExpendProcessListCount(null,companyId,startDate,endDate,deptIds);
             }
         }else {
-            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,null);
+            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,null,start,size);
             total=projectMapper.groupExpendProcessListCount(null,companyId,startDate,endDate,null);
         }
-        Map<String, List<Map<String, Object>>> listMapGroupList = resultList.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("corpwxDeptId"))));
-        List<String> departmentNameList = resultList.stream().map(m -> String.valueOf(m.get("corpwxDeptId"))).distinct().collect(Collectors.toList());
-        List<Map<String,Object>> lastList=new ArrayList<>();
-        for (String deptName : departmentNameList) {
-            List<Map<String, Object>> maps = listMapGroupList.get(deptName);
-            //再根据每个部门下员工数据长度合并人员名称列
-            Map<String, List<Map<String, Object>>> listMapGroupList2 = maps.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("groupName"))));
-            List<String> groupNameList = maps.stream().map(m -> String.valueOf(m.get("groupName"))).distinct().collect(Collectors.toList());
-            for (String groupName : groupNameList) {
-                List<Map<String, Object>> mapList1 = listMapGroupList2.get(groupName);
-                double planHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("planHour")))).sum();
-                double normalHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("normalHour")))).sum();
-                double overHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("overHour")))).sum();
-                double realHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
-                double realCost = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realCost")))).sum();
-                double planHourNum = new BigDecimal(planHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double normalHourNum = new BigDecimal(normalHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double overHourNum = new BigDecimal(overHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double realHourNum = new BigDecimal(realHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double realCostNum = new BigDecimal(realCost).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                BigDecimal decimal = new BigDecimal(realHourNum);
-                decimal=decimal.divide(new BigDecimal(planHourNum),4,BigDecimal.ROUND_HALF_UP);
-                Map<String,Object> item=new HashMap<>();
-                item.put("deptId",deptName);
-                item.put("corpwxDeptId",maps.get(0).get("corpwxDeptId"));
-                item.put("groupName",groupName);
-                item.put("planHour",planHourNum);
-                item.put("normalHour",normalHourNum);
-                item.put("overHour",overHourNum);
-                item.put("realHour",realHourNum);
-                item.put("realCost",realCostNum);
-                item.put("process",percentFormat.format(decimal.doubleValue()));
-                lastList.add(item);
-            }
-        }
         Map<String,Object> resultMap=new HashMap<>();
-        resultMap.put("record",lastList);
+        resultMap.put("record",resultList);
+        resultMap.put("total",total);
         msg.setData(resultMap);
         return msg;
     }
@@ -12713,7 +12685,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
         percentFormat.setMaximumFractionDigits(2);
-        HttpRespMsg resultMsg = groupExpendProcessList(startDate,endDate);
+        HttpRespMsg resultMsg = groupExpendProcessList(startDate,endDate,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();
@@ -12798,6 +12770,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         SXSSFRow row0 = sheet.createRow(rowNum++);
         row0.setHeight((short)500);
         List<String> row_first =new ArrayList<>();
+        row_first.add("项目名称");
         row_first.add("负责部门");
         row_first.add("任务分组");
         row_first.add("计划工时(财务)");
@@ -12811,11 +12784,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             tempCell.setCellValue(row_first.get(i));
             tempCell.setCellStyle(headStyle);
         }
-        sheet.addMergedRegion(new CellRangeAddress(0,0,3,6));
+        sheet.addMergedRegion(new CellRangeAddress(0,0,4,7));
         sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));
         sheet.addMergedRegion(new CellRangeAddress(0,1,1,1));
         sheet.addMergedRegion(new CellRangeAddress(0,1,2,2));
-        sheet.addMergedRegion(new CellRangeAddress(0,1,7,7));
+        sheet.addMergedRegion(new CellRangeAddress(0,1,3,3));
+        sheet.addMergedRegion(new CellRangeAddress(0,1,8,8));
         //第二行
         SXSSFRow row1 = sheet.createRow(rowNum++);
         row1.setHeight((short)500);
@@ -12823,6 +12797,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         row_second.add("");
         row_second.add("");
         row_second.add("");
+        row_second.add("");
         row_second.add("正常工时");
         row_second.add("加班工时");
         row_second.add("合计工时");
@@ -12834,50 +12809,43 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             tempCell.setCellStyle(headStyle);
         }
         List<String> list=new ArrayList<>();
-        Map<String, List<Map<String, Object>>> listMapGroupList = mapList.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("corpwxDeptId"))));
-        List<String> departmentNameList = mapList.stream().map(m -> String.valueOf(m.get("corpwxDeptId"))).distinct().collect(Collectors.toList());
-        //根据每个部门下数据长度合并部门名称列
-        int deptIndex=rowNum;
-        int allRowNum=0;
-        for (String deptName : departmentNameList) {
-            List<Map<String, Object>> maps = listMapGroupList.get(deptName);
-            //再根据每个部门下员工数据长度合并人员名称列
-            Map<String, List<Map<String, Object>>> listMapGroupList2 = maps.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("groupName"))));
-            List<String> groupNameList = maps.stream().map(m -> String.valueOf(m.get("groupName"))).distinct().collect(Collectors.toList());
-            if(groupNameList.size()>1){
-                sheet.addMergedRegion(new CellRangeAddress(deptIndex,deptIndex+groupNameList.size()-1,0,0));
-            }
-            deptIndex+=groupNameList.size();
-            for (String groupName : groupNameList) {
-                List<Map<String, Object>> mapList1 = listMapGroupList2.get(groupName);
-                list.add("$departmentName="+deptName+"$");
-                list.add(groupName);
-                double planHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("planHour")))).sum();
-                double normalHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("normalHour")))).sum();
-                double overHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("overHour")))).sum();
-                double realHour = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
-                double realCost = mapList1.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realCost")))).sum();
-                double planHourNum = new BigDecimal(planHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double normalHourNum = new BigDecimal(normalHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double overHourNum = new BigDecimal(overHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double realHourNum = new BigDecimal(realHour).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                double realCostNum = new BigDecimal(realCost).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                list.add(String.valueOf(planHourNum));
-                list.add(String.valueOf(normalHourNum));
-                list.add(String.valueOf(overHourNum));
-                list.add(String.valueOf(realHourNum));
-                list.add(String.valueOf(realCostNum));
-                BigDecimal decimal = new BigDecimal(realHourNum);
-                decimal=decimal.divide(new BigDecimal(planHourNum),4,BigDecimal.ROUND_HALF_UP);
-                list.add(percentFormat.format(decimal.doubleValue()));
-            }
-            allRowNum+=groupNameList.size();
+        Map<String, List<Map<String, Object>>> listMapGroupList = mapList.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("projectId"))));
+        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);
+            if(maps.size()>1){
+                sheet.addMergedRegion(new CellRangeAddress(projectNum,projectNum+maps.size()-1,0,0));
+            }
+            Map<String, List<Map<String, Object>>> listMapGroupDeptList = maps.stream().collect(Collectors.groupingBy(m -> String.valueOf(m.get("corpwxDeptId"))));
+            List<String> deptIdList = maps.stream().map(m -> String.valueOf(m.get("corpwxDeptId"))).distinct().collect(Collectors.toList());
+            Integer deptNum=projectNum;
+            for (String deptId : deptIdList) {
+                List<Map<String, Object>> maps1 = listMapGroupDeptList.get(deptId);
+                if(maps1.size()>1){
+                    sheet.addMergedRegion(new CellRangeAddress(deptNum,deptNum+maps1.size()-1,1,1));
+                }
+                deptNum+=maps1.size();
+            }
+            projectNum+=maps.size()+1;
+        }
+        for (Map<String, Object> map : mapList) {
+            list.add(String.valueOf(map.get("projectName")));
+            list.add(String.valueOf(map.get("corpwxDeptId")));
+            list.add(String.valueOf(map.get("groupName")));
+            list.add(String.valueOf(map.get("planHour")));
+            list.add(String.valueOf(map.get("normalHour")));
+            list.add(String.valueOf(map.get("overHour")));
+            list.add(String.valueOf(map.get("realHour")));
+            list.add(String.valueOf(map.get("realCost")));
+            list.add(String.valueOf(map.get("process")));
         }
         int k=0;
-        for(int i = 0;i<allRowNum;i++){
+        for(int i = 0;i<mapList.size();i++){
             SXSSFRow tempRow = sheet.createRow(rowNum++);
             tempRow.setHeight((short)500);
-            for(int j=0;j<8;j++){
+            for(int j=0;j<9;j++){
                 SXSSFCell tempCell = tempRow.createCell(j);
                 String cellValue = "";
                 tempCell.setCellStyle(cellStyle);

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

@@ -1843,30 +1843,23 @@
     </select>
 
     <select id="groupExpendProcessList" resultType="java.util.Map">
-        select d.department_name,d.corpwx_deptid as corpwxDeptId,tg.name as groupName,IFNULL(SUM(te.plan_hours),0) as planHour,
-        IFNULL(IFNULL((select SUM(working_time) from report where group_id=tg.id and state=1 <if test="startDate!=null and endDate!=null">
-          and  create_date between #{startDate} and #{endDate}
-        </if> ),0)-IFNULL((select SUM(overtime_hours) from report where group_id=tg.id and state=1 <if test="startDate!=null and endDate!=null">
-          and create_date between #{startDate} and #{endDate}
-        </if>),0),0) as normalHour,
-        IFNULL((select SUM(overtime_hours) from report where group_id=tg.id and state=1 <if test="startDate!=null and endDate!=null">
-          and create_date between #{startDate} and #{endDate}
-        </if>),0) as overHour,
-        IFNULL((select SUM(working_time) from report where group_id=tg.id and state=1 <if test="startDate!=null and endDate!=null">
-          and create_date between #{startDate} and #{endDate}
-        </if>),0) as realHour,
-        IFNULL((select SUM(cost) from report where group_id=tg.id and state=1 <if test="startDate!=null and endDate!=null">
-          and create_date between #{startDate} and #{endDate}
-        </if>),0) as realCost
-        from task_executor te
-        left join  user u on u.id=te.executor_id
-        left join task t on t.id=te.task_id
-        left join task_group tg on tg.id=t.group_id
-        left join department d on d.department_id=u.department_id
-        where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
-        and tg.name in ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
+        SELECT p.project_name AS projectName,p.id as projectId,d.department_name,d.corpwx_deptid AS corpwxDeptId,tg.name AS groupName,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END),0) AS realHour,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.cost ELSE NULL END),0) AS realCost,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.overtime_hours ELSE NULL END),0) AS overHour,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END)
+              -SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.overtime_hours ELSE NULL END),0) AS normalHour,
+        IFNULL(tg.man_day*8,0) AS planHour,
+        CONCAT(ROUND((IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END),0)/IFNULL(tg.man_day*8,0))*100,2),'%') as process
+        FROM  task_group tg
+        LEFT JOIN task t ON t.group_id=tg.id
+        LEFT JOIN report r  ON r.task_id=t.id
+        LEFT JOIN USER u ON u.id=r.creator_id
+        LEFT JOIN project p ON p.id=r.project_id
+        LEFT JOIN department d ON d.department_id=u.department_id
+        WHERE u.company_id=#{companyId} AND r.dept_id IN (7458,7459,7460)  AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
         <if test="userId!=null and userId!=''">
-            and te.executor_id=#{userId}
+            and r.creator_id=#{userId}
         </if>
         <if test="list!=null and list.size()>0">
             and d.department_id in
@@ -1874,22 +1867,31 @@
                 #{item}
             </foreach>
         </if>
-        group by t.group_id
-        order by d.department_id
+        GROUP BY tg.id ORDER BY p.id,d.department_id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>
     </select>
 
     <select id="groupExpendProcessListCount" resultType="java.lang.Long">
         select count(1) from (
-        select d.department_name,tg.name as groupName
-        from task_executor te
-        left join  user u on u.id=te.executor_id
-        left join task t on t.id=te.task_id
-        left join task_group tg on tg.id=t.group_id
-        left join department d on d.department_id=u.department_id
-        where u.company_id=#{companyId} and te.project_id is not null and d.department_name in ('4','12','14')
-        and tg.name in ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
+        SELECT p.project_name AS projectName,p.id as projectId,d.department_name,d.corpwx_deptid AS corpwxDeptId,tg.name AS groupName,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END),0) AS realHour,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.cost ELSE NULL END),0) AS realCost,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.overtime_hours ELSE NULL END),0) AS overHour,
+        IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END)
+        -SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.overtime_hours ELSE NULL END),0) AS normalHour,
+        IFNULL(tg.man_day*8,0) AS planHour,
+        CONCAT(ROUND((IFNULL(SUM(CASE WHEN (r.create_date BETWEEN #{startDate} AND #{endDate} AND r.state=1 AND r.project_id IS NOT NULL) THEN r.working_time ELSE NULL END),0)/IFNULL(tg.man_day*8,0))*100,2),'%') as process
+        FROM  task_group tg
+        LEFT JOIN task t ON t.group_id=tg.id
+        LEFT JOIN report r  ON r.task_id=t.id
+        LEFT JOIN USER u ON u.id=r.creator_id
+        LEFT JOIN project p ON p.id=r.project_id
+        LEFT JOIN department d ON d.department_id=u.department_id
+        WHERE u.company_id=#{companyId} AND r.dept_id IN (7458,7459,7460) AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
         <if test="userId!=null and userId!=''">
-            and te.executor_id=#{userId}
+            and r.creator_id=#{userId}
         </if>
         <if test="list!=null and list.size()>0">
             and d.department_id in
@@ -1897,8 +1899,7 @@
                 #{item}
             </foreach>
         </if>
-        group by t.group_id
-        order by d.department_id
+        GROUP BY tg.id ORDER BY p.id,d.department_id
         ) as total
     </select>
 

+ 11 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -1104,7 +1104,8 @@
             </el-table>
 
             <!-- 分组耗用进度表 -->
-            <el-table  v-if="ins == 24" :key="24" border :data="isbeCustomReport.consumptionSchedule" highlight-current-row v-loading="listLoading" :height="(+tableHeight + 50) - 1" style="width: 100%;" :span-method="objectSpanMethod">
+            <el-table  v-if="ins == 24" :key="24" border :data="isbeCustomReport.consumptionSchedule" highlight-current-row v-loading="listLoading" :height="(+tableHeight - 0) - 1" style="width: 100%;" :span-method="objectSpanMethod">
+              <el-table-column align="center" prop="projectName" label="项目名称" min-width="200"></el-table-column>
               <el-table-column align="center" prop="department_name" label="负责部门" min-width="150">
                 <template slot-scope="scope">
                   <div>
@@ -1220,7 +1221,7 @@
               <el-table-column align="center" prop="workTime" label="实际工时" min-width="150"></el-table-column>
             </el-table>
         <!--工具条-->
-        <el-col :span="24" class="toolbar" v-if="ins != 6 && ins != 20 && ins != 21 && ins != 24">
+        <el-col :span="24" class="toolbar" v-if="ins != 6 && ins != 20 && ins != 21">
           <el-pagination
                 v-if="ins == 12"
                 @size-change="groupSizeChange"
@@ -1790,14 +1791,16 @@ export default {
       if(this.permissions.reportProjectEstimated) {this.ssl(27);this.reportProjectEstimated = '1-28';return} else
       {this.allWrong = false}
     },
-    rowspan(spanArr,position,spanName,dataItem = []){
+    rowspan(spanArr,position,spanName,dataItem = [],fields=false){
       let newArray = dataItem.length > 0 ? dataItem : this.list1
       newArray.forEach((item,index) => {
         if(index == 0){
           spanArr.push(1)
           position = 0
         }else {
-          if(newArray[index][spanName] == newArray[index-1][spanName]){
+          let newArrFlag = newArray[index][spanName] == newArray[index-1][spanName] && (!fields || newArray[index][fields] == newArray[index-1][fields]);
+          // if(newArray[index][spanName] == newArray[index-1][spanName]){
+          if(newArrFlag){
             spanArr[position] += 1
             spanArr.push(0)
           }else {
@@ -3779,13 +3782,16 @@ export default {
       let parameter = {
         startDate: this.rangeDatas[0],
         endDate: this.rangeDatas[1],
+        pageIndex: this.page,
+        pageSize: this.size,
       }
       this.listLoading = true
       let { data } = await this.postData('/project/groupExpendProcessList', {
         ...parameter
       }) 
       this.resetMerge()
-      this.rowspan(this.listArr1, this.listPosition1, 'corpwxDeptId', data.record)
+      this.rowspan(this.listArr1, this.listPosition1, 'projectId', data.record)
+      this.rowspan(this.listArr2, this.listPosition2, 'corpwxDeptId', data.record, 'projectId')
       this.isbeCustomReport.consumptionSchedule = data.record
       this.total = data.total
       this.listLoading = false