浏览代码

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

Lijy 11 月之前
父节点
当前提交
365e98629b

+ 57 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java

@@ -229,7 +229,12 @@ public class UserWithBeisenController {
                         List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
                                 && (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
                         //加班数据可能存在结束日期是当前日期的情况的情况
-                        BigDecimal overTimeBigDecimal = new BigDecimal(0);
+                        BigDecimal overTimeBigDecimal;
+                        if(workDay){
+                            overTimeBigDecimal = new BigDecimal(0);
+                        }else {
+                            overTimeBigDecimal = new BigDecimal(8);
+                        }
                         for (JSONObject o : overTimeList) {
                             //存在开始日期为当前日期的数据以及结束日期为当天日期的数据 分开计算
                             if(LocalDateTime.parse(o.getString("StartDate"),df1).toLocalDate().isEqual(localDate)){
@@ -247,7 +252,9 @@ public class UserWithBeisenController {
 //                                        if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                            timeDurantion=timeDurantion.minusMinutes(30);
 //                                        }
-                                        long l = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l = decimal.doubleValue();
                                         if(l<o.getDouble("OverTimeDuration")){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                         }else {
@@ -266,11 +273,15 @@ public class UserWithBeisenController {
 //                                    if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                        duration=duration.minusMinutes(30);
 //                                    }
-                                    long l = duration.toMinutes() / 60;
+                                    BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                                    decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                    double l = decimal.doubleValue();
                                     if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
                                         //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                         Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
-                                        long l1 = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l1 = decimal1.doubleValue();
                                         if(l1<l){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                         }else {
@@ -293,7 +304,9 @@ public class UserWithBeisenController {
 //                                        if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                            timeDurantion=timeDurantion.minusMinutes(30);
 //                                        }
-                                        long l = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l = decimal.doubleValue();
                                         if(l<o.getDouble("OverTimeDuration")){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                         }else {
@@ -313,11 +326,15 @@ public class UserWithBeisenController {
 //                                    if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                        duration=duration.minusMinutes(30);
 //                                    }
-                                    long l = duration.toMinutes() / 60;
+                                    BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                                    decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                    double l = decimal.doubleValue();
                                     if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
                                         //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                         Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
-                                        long l1 = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l1 = decimal1.doubleValue();
                                         if(l1<l){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                         }else {
@@ -332,10 +349,12 @@ public class UserWithBeisenController {
                             workTime= workTime+overTimeBigDecimal.doubleValue();
                         }else {
                             //非工作日加班 根据实际打卡时长 比较 加班单时长
-                            if((between.toMinutes()/60)>overTimeBigDecimal.doubleValue()){
+                            BigDecimal decimal = new BigDecimal(between.toMinutes());
+                            decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                            if((decimal.doubleValue())>overTimeBigDecimal.doubleValue()){
                                 workTime= workTime+overTimeBigDecimal.doubleValue();
                             }else {
-                                workTime= workTime+(between.toMinutes()/60);
+                                workTime= workTime+(decimal.doubleValue());
                             }
                         }
                         //处理修改
@@ -510,7 +529,12 @@ public class UserWithBeisenController {
                 List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
                         && (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
                 //加班数据可能存在结束日期是当前日期的情况的情况
-                BigDecimal overTimeBigDecimal = new BigDecimal(0);
+                BigDecimal overTimeBigDecimal;
+                if(workDay){
+                    overTimeBigDecimal = new BigDecimal(0);
+                }else {
+                    overTimeBigDecimal = new BigDecimal(8);
+                }
                 LocalDate localDate = LocalDate.parse(createDate, df);
                 for (JSONObject o : overTimeList) {
                     //存在开始日期为当前日期的数据以及结束日期为当天日期的数据 分开计算
@@ -529,7 +553,10 @@ public class UserWithBeisenController {
 //                                if(max.isAfter(LocalTime.parse("18:00:00",df4))){
 //                                    timeDurantion=timeDurantion.minusMinutes(30);
 //                                }
-                                long l = timeDurantion.toMinutes() / 60;
+                                System.out.println(timeDurantion.toMinutes());
+                                BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                double l = decimal.doubleValue();
                                 if(l<o.getDouble("OverTimeDuration")){
                                     overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                 }else {
@@ -548,11 +575,15 @@ public class UserWithBeisenController {
 //                            if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                duration=duration.minusMinutes(30);
 //                            }
-                            long l = duration.toMinutes() / 60;
+                            BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                            decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                            double l = decimal.doubleValue();
                             if(max.isAfter(LocalTime.parse("19:00:00",df4))){
                                 //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                 Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max);
-                                long l1 = timeDurantion.toMinutes() / 60;
+                                BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                double l1 = decimal1.doubleValue();
                                 if(l1<l){
                                     overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                 }else {
@@ -575,7 +606,9 @@ public class UserWithBeisenController {
 //                                if(max.isAfter(LocalTime.parse("18:00:00",df4))){
 //                                    timeDurantion=timeDurantion.minusMinutes(30);
 //                                }
-                                long l = timeDurantion.toMinutes() / 60;
+                                BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                double l = decimal.doubleValue();
                                 if(l<o.getDouble("OverTimeDuration")){
                                     overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                 }else {
@@ -595,11 +628,15 @@ public class UserWithBeisenController {
 //                            if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                duration=duration.minusMinutes(30);
 //                            }
-                            long l = duration.toMinutes() / 60;
+                            BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                            decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                            double l = decimal.doubleValue();
                             if(max.isAfter(LocalTime.parse("19:00:00",df4))){
                                 //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                 Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max);
-                                long l1 = timeDurantion.toMinutes() / 60;
+                                BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                double l1 = decimal1.doubleValue();
                                 if(l1<l){
                                     overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                 }else {
@@ -614,10 +651,12 @@ public class UserWithBeisenController {
                     workTime= workTime+overTimeBigDecimal.doubleValue();
                 }else {
                     //非工作日加班 根据实际打卡时长 比较 加班单时长
-                    if((between.toMinutes()/60)>overTimeBigDecimal.doubleValue()){
+                    BigDecimal decimal = new BigDecimal(between.toMinutes());
+                    decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                    if((decimal.doubleValue())>overTimeBigDecimal.doubleValue()){
                         workTime= workTime+overTimeBigDecimal.doubleValue();
                     }else {
-                        workTime= workTime+(between.toMinutes()/60);
+                        workTime= workTime+(decimal.doubleValue());
                     }
                 }
                 //处理修改

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

@@ -2180,7 +2180,12 @@ public class TimingTask {
                         List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
                                 && (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
                         //加班数据可能存在结束日期是当前日期的情况的情况
-                        BigDecimal overTimeBigDecimal = new BigDecimal(0);
+                        BigDecimal overTimeBigDecimal;
+                        if(workDay){
+                            overTimeBigDecimal = new BigDecimal(0);
+                        }else {
+                            overTimeBigDecimal = new BigDecimal(8);
+                        }
                         for (JSONObject o : overTimeList) {
                             //存在开始日期为当前日期的数据以及结束日期为当天日期的数据 分开计算
                             if(LocalDateTime.parse(o.getString("StartDate"),df1).toLocalDate().isEqual(localDate)){
@@ -2198,7 +2203,9 @@ public class TimingTask {
 //                                        if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                            timeDurantion.minusMinutes(30);
 //                                        }
-                                        long l = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l = decimal.doubleValue();
                                         if(l<o.getDouble("OverTimeDuration")){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                         }else {
@@ -2217,11 +2224,15 @@ public class TimingTask {
 //                                    if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                        duration.minusMinutes(30);
 //                                    }
-                                    long l = duration.toMinutes() / 60;
+                                    BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                                    decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                    double l = decimal.doubleValue();
                                     if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
                                         //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                         Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
-                                        long l1 = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l1 = decimal1.doubleValue();
                                         if(l1<l){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                         }else {
@@ -2244,7 +2255,9 @@ public class TimingTask {
 //                                        if(max.get().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                            timeDurantion.minusMinutes(30);
 //                                        }
-                                        long l = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l = decimal.doubleValue();
                                         if(l<o.getDouble("OverTimeDuration")){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l));
                                         }else {
@@ -2264,11 +2277,15 @@ public class TimingTask {
 //                                    if(stop.toLocalTime().isAfter(LocalTime.parse("18:00:00",df4))){
 //                                        duration.minusMinutes(30);
 //                                    }
-                                    long l = duration.toMinutes() / 60;
+                                    BigDecimal decimal = new BigDecimal(duration.toMinutes());
+                                    decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                    double l = decimal.doubleValue();
                                     if(max.get().isAfter(LocalTime.parse("19:00:00",df4))){
                                         //判断打卡时间是不是大于19:00 通过打卡计算加班时长 与加班单作比较 取小
                                         Duration timeDurantion = Duration.between(LocalTime.parse("18:00:00", df4), max.get());
-                                        long l1 = timeDurantion.toMinutes() / 60;
+                                        BigDecimal decimal1 = new BigDecimal(timeDurantion.toMinutes());
+                                        decimal1=decimal1.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                                        double l1 = decimal1.doubleValue();
                                         if(l1<l){
                                             overTimeBigDecimal=overTimeBigDecimal.add(new BigDecimal(l1));
                                         }else {
@@ -2283,10 +2300,12 @@ public class TimingTask {
                             workTime= workTime+overTimeBigDecimal.doubleValue();
                         }else {
                             //非工作日加班 根据实际打卡时长 比较 加班单时长
-                            if((between.toMinutes()/60)>overTimeBigDecimal.doubleValue()){
+                            BigDecimal decimal = new BigDecimal(between.toMinutes());
+                            decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_UP);
+                            if((decimal.doubleValue())>overTimeBigDecimal.doubleValue()){
                                 workTime= workTime+overTimeBigDecimal.doubleValue();
                             }else {
-                                workTime= workTime+(between.toMinutes()/60);
+                                workTime= workTime+(decimal.doubleValue());
                             }
                         }
                         List<JSONObject> vacationList = vacationStream.filter(a ->{

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -260,7 +260,7 @@
     "enterpriseWeChatReminder": "企业微信催填",
     "dingNingurgefilling": "钉钉催填",
     "weChatReminder": "微信催填",
-    "completedHours": "已填工时情况",
+    "completedHours": "工时填报情况",
     "unfilledPersonList": "未填人员列表",
     "missingDate": "未填日期",
     "attendanceData": "考勤数据",

+ 18 - 8
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -1433,6 +1433,12 @@
                 </el-input>
                 <selectCat v-if="user.userNameNeedTranslate == '1'" :filterable="true"  :searchBoxTop="'1'" :size="'small'" :subject="usersList" :subjectId="usersListId" :distinction="'12'" :clearable="true" @selectCal="selectCal"></selectCat>
             </div>
+            <div style="float: left; height:32px; padding-top:10px;">
+              <span style="width:20px;height:20px;background-color: orange;padding:5px 8px;">待审核</span>
+              <span style="width:20px;height:20px;background-color: #32CD32;padding:5px 8px;margin-left:10px;">已通过</span>
+              <span style="width:20px;height:20px;background-color: red;padding:5px 8px;margin-left:10px;">已驳回</span>
+              <span style="width:20px;height:20px;background-color: #E0E0E0;padding:5px 8px;margin-left:10px;">未提交</span>
+            </div>
             <div style="float: right; vertical-align: middle;height:32px">
               <el-link
               type="primary"
@@ -1441,6 +1447,7 @@
              >
             </div>
             
+            
           </div>
 
           <el-table ref="hasworkTbl"
@@ -2573,18 +2580,21 @@
 
                     const isWorkDate = filterData[0] && filterData[0].workingTime
                     const state = filterData[0] && filterData[0].state
-                    if (state == 1) {
+                    if (state == 0 || state == -1) {
+                        return "backgroundColor: orange"
+                    } else if (state == 1) {
                         //审核通过
                         return "backgroundColor: #32CD32"
                     } else if (state == 2) {
-                        return "backgroundColor: #FF0000"
+                        return "backgroundColor: red"
                     } else {
-                        if(isWorkDate < times) {
-                            return "backgroundColor: #FC3D49"
-                        }
-                        if(isWorkDate > times) {
-                            return "backgroundColor: #20a0ff"
-                        }
+                        return "backgroundColor: #E0E0E0"
+                        // if(isWorkDate < times) {
+                        //     return "backgroundColor: #FC3D49"
+                        // }
+                        // if(isWorkDate > times) {
+                        //     return "backgroundColor: #20a0ff"
+                        // }
                     }
                     
                 }