Ver código fonte

出差自动生成考勤

QuYueTing 5 dias atrás
pai
commit
132994783d

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -11139,6 +11139,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     map.put("createDate", dateTimeFormatter.format(fvTime.getWorkDate()));
                     map.put("workHours", fvTime.getWorkHours());
                     map.put("reportTime", reportTime);
+                    if (fvTime.getProcinstId() != null && fvTime.getProcinstId().startsWith("bustrip")) {
+                        map.put("isBusTrip", true);
+                    }
                     resultList.add(map);
                 }
             }

+ 31 - 16
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java

@@ -291,11 +291,11 @@ public class DataCollectTask {
 
     }
 
-    @Scheduled(cron = "0 30 1 * * ?")
-//@Scheduled(cron = "0 42 16 * * ?")
+//    @Scheduled(cron = "0 30 1 * * ?")
+@Scheduled(cron = "50 24 11 * * ?")
     public void workDayTask(){
-        if(isDev){return;}
-        if(isPrivateDeploy) return;
+//        if(isDev){return;}
+//        if(isPrivateDeploy) return;
         RestTemplate restTemplate = new RestTemplate();
         String sumUrl = PREFIX_URL+"/dataCollect/getWorkDayDataSum";
         String listUrl = PREFIX_URL+"/dataCollect/getWorkDayDataList";
@@ -470,7 +470,7 @@ public class DataCollectTask {
                                     if (owner.getIsActive() == 0) {
                                         continue;
                                     }
-                                    Project project = projectMapper.selectOne(new QueryWrapper<Project>().eq("project_code", "HH-GG-0000001").eq("company_id", specialCompanyId));
+                                    Project project = projectMapper.selectOne(new QueryWrapper<Project>().eq("project_code", "HH-QJ-0000001").eq("company_id", specialCompanyId));
                                     TaskGroup leaveGroup = taskGroupMapper.selectOne(new LambdaQueryWrapper<TaskGroup>().eq(TaskGroup::getProjectId, project.getId()).eq(TaskGroup::getName, "请假工时"));
                                     for (LocalDate date = tmp.getStartDate(); date.compareTo(tmp.getEndDate()) <= 0; date = date.plusDays(1)) {
                                         //先计算每一天的请假工时数合计
@@ -733,12 +733,12 @@ public class DataCollectTask {
         }
     }
 
-    @Scheduled(cron = "0 0 3 * * ?")
-//@Scheduled(cron = "0 57 9 * * ?")
+//    @Scheduled(cron = "0 0 3 * * ?")
+@Scheduled(cron = "30 47 11 * * ?")
     @Async
     public void businessTripTask(){
-        if(isDev){return;}
-        if(isPrivateDeploy) return;
+//        if(isDev){return;}
+//        if(isPrivateDeploy) return;
         RestTemplate restTemplate = new RestTemplate();
         String sumUrl = PREFIX_URL+"/dataCollect/getBusinessTripDataSum";
         String listUrl = PREFIX_URL+"/dataCollect/getBusinessTripDataList";
@@ -799,14 +799,7 @@ public class DataCollectTask {
                                         toAddList.add(businessTrip);
                                     }
                                 }
-//                                if(existBTripList.size() > 0){
-//                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-//                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-//                                }else{
-//                                    toAddList.addAll(realDataList);
-//                                }
                                 if(!CollectionUtils.isEmpty(toAddList)){
-//                                businessTripMapper.batchInsert(toAddList);
                                     for (BusinessTrip businessTrip : toAddList) {
                                         businessTripMapper.insert(businessTrip);
                                         if (!StringUtils.isEmpty(businessTrip.getCCcxmNo())) {
@@ -850,6 +843,28 @@ public class DataCollectTask {
                                         }
                                     }
                                 }
+
+                                //自动生成考勤数据
+                                for (BusinessTrip trip : realDataList) {
+                                    LocalDate startDate = trip.getStartDate();
+                                    LocalDate endDate = trip.getEndDate();
+                                    while (!startDate.isAfter(endDate)) {
+                                        //检查是否已经有当天的考勤
+                                        int cnt = userFvTimeMapper.selectCount(new QueryWrapper<UserFvTime>().eq("work_date", startDate).eq("user_id", trip.getOwnerId()));
+                                        if (cnt == 0) {
+                                            UserFvTime time = new UserFvTime();
+                                            time.setUserId(trip.getOwnerId());
+                                            time.setWorkDate(startDate);
+                                            time.setStartTime("9:00");
+                                            time.setEndTime("18:00");
+                                            time.setWorkHours(8.0f);
+                                            time.setCompanyId(trip.getCompanyId());
+                                            time.setProcinstId("bustrip_"+UUID.randomUUID().toString().replace("-",""));
+                                            userFvTimeMapper.insert(time);
+                                        }
+                                        startDate = startDate.plusDays(1);
+                                    }
+                                }
                             }
 
                             toUpdateList.clear();