Переглянути джерело

报表,鲸鱼考勤同步

QuYueTing 8 місяців тому
батько
коміт
88d9016310

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java

@@ -444,7 +444,7 @@ public class UserCorpwxTimeController {
         } else if (localDate.isBefore(LocalDate.now())) {
             LocalDateTime start = localDate.atTime(0,0,0);
             LocalDateTime end = localDate.atTime(0,0,0);
-            wxCorpInfoService.getUserCheckInDayData(user.getCompanyId(),user.getId(),start, end, false);
+            wxCorpInfoService.getUserCheckInDayData(user.getCompanyId(),user.getId(),start, end, true);
             List<UserCorpwxTime> changedCorpwxTimes = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>()
                     .eq("corpwx_userid", user.getCorpwxUserid()).eq("create_date", date));
 

+ 19 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -14920,7 +14920,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(!StringUtils.isEmpty(titleStr)){
             // 解码
             String decodedString = URLDecoder.decode(titleStr, "UTF-8");
-            System.out.println("Decoded String: " + decodedString);
             strings = Arrays.asList(decodedString.split(","));
             titleList.addAll(strings);
         }
@@ -14937,10 +14936,27 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             double researchTiao = getDoubleValue(map, "研发部工艺调试");
             Double sum=design+research+researchDesign+researchDesignShou+researchTiao;
             List<String> item=new ArrayList<>();
+            String deptName = String.valueOf(map.get("departmentName"));
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                item.add("$departmentName="+String.valueOf(map.get("departmentName"))+"$");
+                if (!StringUtils.isEmpty(deptName)) {
+                    //中间可能含有/,需要按照/分割,分别替换
+                    if (deptName.contains("/")) {
+                        String[] split = deptName.split("/");
+                        StringBuilder sb = new StringBuilder();
+                        for (int i=0;i<split.length; i++) {
+                            String s = split[i];
+                            sb.append("$departmentName=").append(s).append("$");
+                            if (i != split.length - 1) {
+                                sb.append("/");
+                            }
+                        }
+                        item.add(sb.toString());
+                    } else {
+                        item.add("$departmentName="+deptName+"$");
+                    }
+                }
             }else {
-                item.add(String.valueOf(map.get("departmentName")));
+                item.add(deptName);
             }
             item.add(String.valueOf(map.get("jobNumber")));
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){

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

@@ -5129,7 +5129,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                     if (timeType.getNeedDeptAudit() == 0) {
                                         report.setState(1);//导入的直接算审核通过
                                     } else {
-                                        //赛元微电子,导入的按照项目审核的模式进行
                                         report.setState(-1);
                                         report.setDepartmentAuditState(1);//部门已审核,到上层领导审核
                                     }

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

@@ -1267,6 +1267,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     int regular_work_sec = summary_info.getIntValue("regular_work_sec");//秒
                     ct.setStartTime(DateTimeUtil.getTimeFromSeconds(sTime));
                     ct.setEndTime(DateTimeUtil.getTimeFromSeconds(eTime));
+                    boolean isCrossDay = eTime >= 24 * 3600;//加班至第二天
                     if (showLog) System.out.println("初始startTime="+ct.getStartTime()+", endTime="+ct.getEndTime());
                     //下班时间和上班时间不一样,正常应该有regular_work_sec,但是企业微信存在问题,传过来的是0,需要校正
                     if (regular_work_sec == 0 && ct.getEndTime() != null && !ct.getEndTime().equals(ct.getStartTime())) {
@@ -1279,8 +1280,12 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     ct.setAskLeaveTime(0.0);
                     ct.setWorkHours(0.0);
                     ct.setOutdoorTime(0.0);
+                    if (isCrossDay) {
+                        //直接用cardTime作为工作时长
+                        ct.setWorkHours(ct.getCardTime());
+                    }
                     //工作日或者非工作日有打卡,需要校正请假,外出的时长数据
-                    if (timeTypeService.isWorkDay(corpInfo.getCompanyId(), localDate, timeType) || sTime > 0 || eTime > 0) {
+                    else if (timeTypeService.isWorkDay(corpInfo.getCompanyId(), localDate, timeType) || sTime > 0 || eTime > 0) {
                         JSONArray holidayItems = jsonObject.getJSONArray("holiday_infos");
                         //开始时间和结束时间一样,说明下班没有打卡,需要提取请假的最晚时间作为下班打卡时间
                         boolean needRecaculate = false;

+ 0 - 2
fhKeeper/formulahousekeeper/timesheet/src/main.js

@@ -234,9 +234,7 @@ router.beforeEach((to, from, next) => {
                             
                         } 
                     }
-                    console.log(arr, '年看看你')
                     getRoutes = arr;
-
                     //同步企业微信考勤打卡的情况下,根据深圳赛元微电子的要求,屏蔽项目报告审核模块
                     if (user.timeType.onlyImportreport == 1) {
                         getRoutes = getRoutes.filter(r=>{return r.name != '项目报告审核'});

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

@@ -2663,7 +2663,7 @@ export default {
             this.proJuctId ? sl.projectId = this.proJuctId : ''
             sl.startDate = this.rangeDatas[0]
             sl.endDate = this.rangeDatas[1]
-            sl.titleStr = (listText || '')+',所属部门,工号,员工,总计'
+            sl.titleStr = (listText || '')+',总计'
           }
         } else if(this.ins == 25) {
           fName = this.$t('xiangMuHaoYongJinDuBiao') + '.xlsx'