Browse Source

Merge remote-tracking branch 'origin/master'

yusm 1 tháng trước cách đây
mục cha
commit
39cfbec9f4

+ 25 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -9721,6 +9721,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         LocalDate end = LocalDate.parse(endDate, dateTimeFormatter);
         end = end.minusDays(lines+1);
         endDate = dateTimeFormatter.format(end);
+        System.out.println("调整后endDate=="+endDate);
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", targetUser.getCompanyId()));
         Integer timeliness = timeType.getTimeliness();
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "全公司填报及时率");
@@ -9859,7 +9860,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         days-=1;
                     }
                 }
-
             }
             //请假的不参与及时率统计
             //todo: 此处对请假的 数据做处理 计请假填报 去除请假日期中的需要填报的日期
@@ -9930,7 +9930,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
             int num=0;
-            System.out.println("总天数"+days);
             if(mapList!=null){
                 for (Map<String, Object> map : mapList) {
                     Map<String,Object> objectMap=new HashMap<>();
@@ -9968,8 +9967,31 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }else {
                         objectMap.put((LocalDate.parse(String.valueOf(date)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))),MessageUtils.message("entry.NoTimely")+"/"+MessageUtils.message("entry.SubTime")+createTimeDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                     }
+                    System.out.println("objectMap==="+objectMap);
                     dataList.add(objectMap);
                 }
+                //处理漏填的情况,漏填的也算不及时
+                boolean hasMissReport = false;
+                for (LocalDateTime localDateTime : dateTimeList.get()) {
+                    if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
+                        continue;
+                    }
+                    if(dataList.stream().anyMatch(a->a.containsKey(localDateTime.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))){
+                        continue;
+                    }
+                    Map<String,Object> map=new HashMap<>();
+                    map.put(localDateTime.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),"漏填报");
+                    dataList.add(map);
+                    hasMissReport = true;
+                }
+                if (hasMissReport) {
+                    //dataList重新排序,按日期从小到大
+                    dataList = dataList.stream().sorted((a, b) -> {
+                        String keyA = a.keySet().iterator().next();
+                        String keyB = b.keySet().iterator().next();
+                        return keyA.compareTo(keyB);
+                    }).collect(Collectors.toList());
+                }
                 BigDecimal bigDecimal=new BigDecimal(num);
                 BigDecimal bigDecimalWithLeave=new BigDecimal(num+(daysWithLeave-days));
                 BigDecimal divide;
@@ -10012,6 +10034,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 BigDecimal divide;
                 BigDecimal divideWithLeave;
                 if(days!=0){
+                    System.out.println("及时日=="+num+","+days);
                     divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
                 }else if(days==0){
                     divide=new BigDecimal(1);

+ 6 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -1692,7 +1692,12 @@
         <el-dialog :title="$t('details')" :visible.sync="timelyDetailDialog" width="600px">
           <el-table :data="timelyDetailList">
             <el-table-column prop="date" :label="$t('weekDay.date')"></el-table-column>
-            <el-table-column prop="detail" :label="$t('fillincase')"></el-table-column>
+            <el-table-column prop="detail" :label="$t('fillincase')">
+              <template slot-scope="scope">
+                <span v-if="scope.row.detail.indexOf('漏填报') >= 0" style="color:red">{{ scope.row.detail }}</span>
+                <span v-else>{{ scope.row.detail }}</span>
+              </template>
+            </el-table-column>
           </el-table>
         </el-dialog>