Bläddra i källkod

防止主项目为空被创建出来
雷电午休半小时

QuYueTing 8 månader sedan
förälder
incheckning
8342eaf788

+ 10 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -10216,14 +10216,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         continue;
                     }
                     if(timeType.getMainProjectState()==1){
-                        Optional<ProjectMain> mainOptional = projectMainList.stream().filter(pm ->pm.getName()!=null&& pm.getName().equals(project.getProjectMainName())).findFirst();
-                        if(!mainOptional.isPresent()){
-                            ProjectMain projectMain=new ProjectMain();
-                            projectMain.setCompanyId(thirdPartyInterface.getCompanyId());
-                            projectMain.setName(project.getProjectMainName());
-                            projectMain.setCode(project.getProjectMainCode());
-                            projectMainMapper.insert(projectMain);
-                            projectMainList.add(projectMain);
+                        if (!StringUtils.isEmpty(project.getProjectMainName())) {
+                            Optional<ProjectMain> mainOptional = projectMainList.stream().filter(pm ->pm.getName()!=null&& pm.getName().equals(project.getProjectMainName())).findFirst();
+                            if(!mainOptional.isPresent()){
+                                ProjectMain projectMain=new ProjectMain();
+                                projectMain.setCompanyId(thirdPartyInterface.getCompanyId());
+                                projectMain.setName(project.getProjectMainName());
+                                projectMain.setCode(project.getProjectMainCode());
+                                projectMainMapper.insert(projectMain);
+                                projectMainList.add(projectMain);
+                            }
                         }
                     }
                     Optional<ProjectCategory> category = projectCategoryList.stream().filter(pc ->pc.getName()!=null&& pc.getName().equals(project.getCategoryName())).findFirst();

+ 0 - 43
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserWithBeisenServiceImpl.java

@@ -192,10 +192,6 @@ public class UserWithBeisenServiceImpl extends ServiceImpl<UserWithBeisenMapper,
                     Stream<JSONObject> dailyReportStream = allDailyReportList.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()){
-                        //todo:之前的逻辑
-//                        List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
-//                                && (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)
-//                                &&LocalDateTime.parse(a.getString("StartDate"),df1).toLocalDate().isEqual(localDate)).collect(Collectors.toList());
                         List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
                                 && (a.getIntValue("ApproveStatus") == 2||a.getIntValue("ApproveStatus") == 1)).collect(Collectors.toList());
                         //加班数据可能存在结束日期是当前日期的情况的情况
@@ -275,45 +271,6 @@ public class UserWithBeisenServiceImpl extends ServiceImpl<UserWithBeisenMapper,
                                 }
                             }
                         }
-//                        //处理修改
-//                        List<JSONObject> vacationList = vacationStream.filter(a ->{
-//                            LocalDate vacationStartDate = LocalDateTime.parse(a.getString("VacationStartDateTime"), df3).toLocalDate();
-//                            LocalDate vacationStopDate = LocalDateTime.parse(a.getString("VacationStopDateTime"), df3).toLocalDate();
-//                            boolean b=false;
-//                            if((localDate.isAfter(vacationStartDate)||localDate.isEqual(vacationStartDate))
-//                                    &&(localDate.isBefore(vacationStopDate)||localDate.isEqual(vacationStopDate))){
-//                                b=true;
-//                            }
-//                            if(a.getString("StaffId").equals(beisen.get().getUserId())
-//                                    && b
-//                                    &&a.getString("DocumentType").equals("请假")
-//                                    &&  (a.getString("ApproveStatus").equals("通过") || a.getString("ApproveStatus").equals("审批中"))){
-//                                return true;
-//                            }
-//                            return false;
-//                        }).collect(Collectors.toList());
-//                        if(vacationList.size()>0){
-//                            double vacationDuration = vacationList.stream().mapToDouble(i -> i.getDouble("VacationDuration")).sum();
-//                            BigDecimal decimal = new BigDecimal(vacationDuration);
-//                            decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
-////                            //可能存在休假多天 只减去一天
-//                            if(decimal.doubleValue()>=8){
-//                                workTime= workTime-8;
-//                            }else {
-//                                workTime= workTime-decimal.doubleValue();
-//                            }
-//                        }else {
-////                            //在工时管家已经同步到的请假数据中找到当前人员的所有请假数据
-////                            List<LeaveSheet> list = leaveSheetService.list(new LambdaQueryWrapper<LeaveSheet>().eq(LeaveSheet::getOwnerId, beisen.get().getUserId()));
-////                            //当前考勤日期在工时同步到的请假数据开始请假和结束日期区间的数据
-////                            List<LeaveSheet> sheets = list.stream().filter(l -> (l.getStartDate().isBefore(localDate) || l.getStartDate().isEqual(localDate)) && (l.getEndDate().isAfter(localDate) || l.getEndDate().isEqual(localDate))).collect(Collectors.toList());
-////                            double sum = sheets.stream().mapToDouble(LeaveSheet::getTimeHours).sum();
-////                            if(sum>=8){
-////                                workTime= workTime-8;
-////                            }else {
-////                                workTime= workTime-sum;
-////                            }
-//                        }
                         //根据日报处理休假时长
                         List<JSONObject> list = dailyReportStream.filter(d -> d.getString("StaffId").equals(beisen.get().getUserId())&&d.getString("Date").equals(df.format(localDate))).collect(Collectors.toList());
                         if(list.size()>0){

+ 22 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -945,7 +945,6 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
         HttpEntity<String> requestEntity = new HttpEntity<String>(reqParam.toJSONString(), headers);
         ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
                 HttpMethod.POST, requestEntity, String.class);
-
         if (responseEntity.getStatusCode() == HttpStatus.OK) {
             String resp = responseEntity.getBody();
             if (showLog) System.out.println(resp);
@@ -984,10 +983,20 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                             baseMorningEnd = workRules.size() <= 1 ? "12:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("off_work_sec"));
                             baseAfternoonStart = workRules.size() <= 1 ? "13:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(1).getIntValue("work_sec"));
                             baseAfternoonEnd = workRules.size() <= 1 ? "18:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(1).getIntValue("off_work_sec"));
-                            if (workRules.size() == 1) {
-                                baseMorningStart = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("work_sec"));
+                            if (workRules.size() == 0) {
+                                baseMorningStart = "09:00";
                                 baseMorningEnd = "12:00";
                                 baseAfternoonStart = "13:00";
+                                baseAfternoonEnd = "18:00";
+                            } else if (workRules.size() == 1) {
+                                baseMorningStart = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("work_sec"));
+                                baseMorningEnd = "12:00";
+                                //针对雷电,下午是12:30上班
+                                if (corpInfo.getCompanyId() == 7030) {
+                                    baseAfternoonStart = "12:30";
+                                } else {
+                                    baseAfternoonStart = "13:00";
+                                }
                                 baseAfternoonEnd = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("off_work_sec"));
                             } else {
                                 baseMorningStart = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("work_sec"));
@@ -996,7 +1005,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                                 baseAfternoonEnd = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(1).getIntValue("off_work_sec"));
                             }
                             if (workRules.size() <= 1) {
-                                restTime = 1.0;//一个小时午休
+                                restTime = corpInfo.getCompanyId() == 7030?0.5:1.0;
                             } else {
                                 restTime = 1.0 * (workRules.getJSONObject(1).getIntValue("work_sec") - workRules.getJSONObject(0).getIntValue("off_work_sec")) / 3600;
                             }
@@ -1197,6 +1206,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     String baseMorningEnd = workRules.size() <= 1 ? "12:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("off_work_sec"));
                     String baseAfternoonStart = workRules.size() <= 1 ? "13:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(1).getIntValue("work_sec"));
                     String baseAfternoonEnd = workRules.size() <= 1 ? "18:00" : DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(1).getIntValue("off_work_sec"));
+
                     //获取上下午考勤规则中的工作时长
                     double baseMorningWorkTime = 0;
                     double baseAfternoonWorkTime = 0;
@@ -1222,7 +1232,12 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     } else if (workRules.size() == 1) {
                         baseMorningStart = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("work_sec"));
                         baseMorningEnd = "12:00";
-                        baseAfternoonStart = "13:00";
+                        //针对雷电,下午是12:30上班
+                        if (corpInfo.getCompanyId() == 7030) {
+                            baseAfternoonStart = "12:30";
+                        } else {
+                            baseAfternoonStart = "13:00";
+                        }
                         baseAfternoonEnd = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("off_work_sec"));
                     } else {
                         baseMorningStart = DateTimeUtil.getTimeFromSeconds(workRules.getJSONObject(0).getIntValue("work_sec"));
@@ -1232,7 +1247,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     }
                     double restTime = 0.0;//小时为单位
                     if (workRules.size() <= 1) {
-                        restTime = 1.0;//一个小时午休
+                        restTime = corpInfo.getCompanyId() == 7030?0.5:1.0;
                     } else {
                         restTime = 1.0 * (workRules.getJSONObject(1).getIntValue("work_sec") - workRules.getJSONObject(0).getIntValue("off_work_sec")) / 3600;
                     }
@@ -1646,6 +1661,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                                 ct.setEndTime(baseAfternoonEnd);
                                 //重新计算时长
                                 double workTime = DateTimeUtil.getHoursFromSeconds(DateTimeUtil.getSecondsFromTime(ct.getEndTime()) - DateTimeUtil.getSecondsFromTime(ct.getStartTime()));
+                                if(showLog) System.out.println("workTime======="+workTime+", restTime="+restTime);
                                 if (ct.getStartTime().compareTo(baseMorningEnd) <= 0) {
                                     //重新计算打卡工时时,需要减去中间午休时间
                                     workTime -= restTime;