Min 1 year ago
parent
commit
91266b95b7

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

@@ -4043,10 +4043,27 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         }
         IPage<User> userIPage = userMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
         IPage<User> userIPage = userMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
         List<User> userList = userIPage.getRecords();
         List<User> userList = userIPage.getRecords();
+        User totalUser=new User();
+        totalUser.setId("0");
+        userList.add(totalUser);
+        List<Map<String,Object>> totalList=new ArrayList<>();
+        for (String date : dataStringList) {
+            Map<String,Object> map=new HashMap<>();
+            List<Map<String, Object>> targetList = personWorkHoursWagesList.stream().filter(p -> String.valueOf(p.get("crateDate")).equals(date)).collect(Collectors.toList());
+            BigDecimal cost = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("cost")))).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal workTime = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("workTime")))).reduce(BigDecimal.ZERO, BigDecimal::add);
+            map.put("userId","0");
+            map.put("crateDate",date);
+            map.put("cost",cost.doubleValue());
+            map.put("workTime",workTime.doubleValue());
+            totalList.add(map);
+        }
+//        totalUser.setPersonWorkHoursWages(totalList);
+        personWorkHoursWagesList.addAll(totalList);
         userList.forEach(u->{
         userList.forEach(u->{
-            List<Map<String, Object>> mapList = personWorkHoursWagesList.stream().filter(pl -> pl.get("userId").equals(u.getId())).collect(Collectors.toList());
+            List<Map<String, Object>> mapList = personWorkHoursWagesList.stream().filter(pl -> String.valueOf(pl.get("userId")).equals(u.getId())).collect(Collectors.toList());
             u.setPersonWorkHoursWages(mapList);
             u.setPersonWorkHoursWages(mapList);
-            u.setDepartmentCascade(convertDepartmentIdToCascade(u.getDepartmentId(),departmentList));
+            u.setDepartmentCascade(u.getId().equals("0")?"小计":convertDepartmentIdToCascade(u.getDepartmentId(),departmentList));
             double workTime = mapList.stream().mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("workTime")))).sum();
             double workTime = mapList.stream().mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("workTime")))).sum();
             BigDecimal bigDecimal=new BigDecimal(workTime);
             BigDecimal bigDecimal=new BigDecimal(workTime);
 //            bigDecimal=bigDecimal.multiply(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_UP);
 //            bigDecimal=bigDecimal.multiply(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_UP);

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

@@ -135,7 +135,7 @@
     </select>
     </select>
 
 
     <select id="getPersonWorkHoursWagesList" resultType="java.util.Map">
     <select id="getPersonWorkHoursWagesList" resultType="java.util.Map">
-        select b.id as userId,c.department_name as departmentName,b.name as userName,DATE_FORMAT(a.create_date,'%Y%m%d') as crateDate,SUM(a.cost) as cost,SUM(a.working_time) as workTime
+        select b.id as userId,c.department_name as departmentName,b.name as userName,DATE_FORMAT(a.create_date,'%Y%m%d') as crateDate,IFNULL(SUM(a.cost),0) as cost,IFNULL(SUM(a.working_time),0) as workTime
         from report a
         from report a
         left join user b on a.creator_id=b.id
         left join user b on a.creator_id=b.id
         left join department c on c.department_id=b.department_id
         left join department c on c.department_id=b.department_id

+ 8 - 2
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -87,9 +87,10 @@
                 <el-table-column align="center" prop="name" label="人员" min-width="100" fixed="left"></el-table-column>
                 <el-table-column align="center" prop="name" label="人员" min-width="100" fixed="left"></el-table-column>
                 <el-table-column v-for="(item, index) in personWorkHoursWagesHead" :key="index" :label="item" align="center" min-width="150">
                 <el-table-column v-for="(item, index) in personWorkHoursWagesHead" :key="index" :label="item" align="center" min-width="150">
                     <template slot-scope="scope">
                     <template slot-scope="scope">
-                        <div v-for="(items, indexs) in scope.row.personWorkHoursWages" :key="indexs" @click="showReportDetail(scope.row,item)" class="colorText">
+                        <div v-for="(items, indexs) in scope.row.personWorkHoursWages" :key="indexs" @click="showReportDetail(scope.row,item)" :class="`${scope.row.departmentCascade== '小计' ? '' : 'colorText'}`">
                             <div v-if="items.crateDate == item">
                             <div v-if="items.crateDate == item">
-                                {{items.workTime}}分钟  {{items.cost}}元
+                               <div> {{items.workTime}}分钟 </div> 
+                               <div>{{items.cost}}元</div>
                             </div>
                             </div>
                         </div>
                         </div>
                     </template>
                     </template>
@@ -656,6 +657,8 @@ export default {
       plondelas: 100, 
       plondelas: 100, 
       personnelFlag: false, // 是否处于最后一集的人员
       personnelFlag: false, // 是否处于最后一集的人员
       rowSpanArr: [], // 需要合并的数据
       rowSpanArr: [], // 需要合并的数据
+
+      sumObject: { english_achievements: 1000, math_achievements: 888 } // 合计数据
     };
     };
   },
   },
   computed: {},
   computed: {},
@@ -729,6 +732,9 @@ export default {
       this.getPlanDetail(item);
       this.getPlanDetail(item);
     },
     },
     showReportDetail(row,item){
     showReportDetail(row,item){
+      if(row.departmentCascade=='小计'){
+          return
+      }
       console.log(item)
       console.log(item)
       this.reportDetailDialog=true
       this.reportDetailDialog=true
       this.detailUserId=row.id
       this.detailUserId=row.id