Parcourir la source

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

ggooalice il y a 2 ans
Parent
commit
1ee8c2f9d9

+ 2 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/css/index.css

@@ -99,6 +99,7 @@
     margin-top: 2.8125rem;
     /* padding-left: 6.6875rem; */
     color: #cfcfcf;
+    margin-bottom: 20px;
 }
 .bannarBtn {
     font-size: 20px;
@@ -108,7 +109,7 @@
     padding: 0 46px;
     text-align: center;
     border-radius: 65px;
-    margin: 70px 0 0 0;
+    margin: 20px 0 0 0;
     letter-spacing: .3125rem;
 }
 .bannarBtn:hover {

+ 11 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/css/reset.css

@@ -47,3 +47,14 @@ button, input, select, textarea {
 button {border:0 none;background-color:transparent;cursor:pointer}
 caption {display:none;}    /* 重置表格标题为隐藏 */
 table {width:100%;border-collapse:collapse;border-spacing:0;table-layout:fixed;}    /* 重置table属性 */
+
+/* 企业微信标识 */
+.tobuimgs {
+  width: 130px;
+  display: flex;
+  justify-items: center;
+}
+.tobuimgs a img {
+  width: 130px !important;
+  height: 58px !important;
+}

BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/qiyeweix.png


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/qywx.png


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/zhuce.png


+ 44 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/index.html

@@ -56,8 +56,8 @@
                         </ul>
                     </div>
                 </div>
-
                 <div class="flexs">
+                    <a href="https://open.work.weixin.qq.com" target="_blank"><img src="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=isp&c=white&s=medium" srcset="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=isp&c=white&s=medium@2x 2x" referrerpolicy="unsafe-url" alt="企业微信" style="width: 180px;height: 30px"></a>
                     <ul class="navigationUl fonsColorBai auss">
                         <!-- <li class="til"><a href="#">咨询客服</a></li> -->
                         <li class="til"><a href="http://worktime.ttkuaiban.com/#/register">立即注册</a></li>
@@ -117,6 +117,9 @@
                 </div>
             </div>
             <div class="bannarTilP">·提供最全面的项目工时统计解决方案·</div>
+            <a href="javascript:;" id="anqiye">
+                <img src="./image/zhuce.png" referrerpolicy="unsafe-url" alt="企业微信">
+            </a>
             <a href="http://worktime.ttkuaiban.com/#/register">
                 <div class="bannarBtn">免费试用</div>
             </a>
@@ -667,7 +670,47 @@
         </div>
     </div>
     
+    <script>
+        const url = new URL('http://www.ttkuaiban.com:10010/wxcorp/getPreAuthCode');
+        console.log(url)
 
+        $('#anqiye').click(function() {
+            console.log('我被点击率')
+            // $.ajax({
+            //     type : "GET",
+            //     // url : "http://192.168.2.97:10010/wxcorp/getPreAuthCode",
+            //     url : "http://worktime.ttkuaiban.com/api/wxcorp/getPreAuthCode",
+            //     dataType : "jsonp",
+            //     jsonp: "jsoncallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
+            //     jsonpCallback:"jsoncallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
+            //     success : function(data){
+            //         console.log(data);
+            //     },
+            //     error:function(){
+            //         alert('请求失败');
+            //     }
+            // });
+            // function jsoncallback(data) {
+            //     console.log(data)
+            // }
+
+            $.ajax({
+                type : "GET",
+                url : "https://worktime.ttkuaiban.com/api/wxcorp/getPreAuthCode",
+                success : function(data){
+                    console.log(data);
+                    let suiteId = 'ww4e237fd6abb635af'
+                    let huidiao = 'https://worktime.ttkuaiban.com/api/wxcorp/installFromWebsite'
+                    let url = `https://open.work.weixin.qq.com/3rdapp/install?suite_id=${suiteId}&pre_auth_code=${data.data.code}&redirect_uri=${huidiao}&state=4`
+                    window.location.replace(url)
+                },
+                error:function(){
+                    alert('请求失败');
+                }
+            });
+
+        })
+    </script>
 
     <!-- <script src="js/js/scripts.js"></script>  -->
     <script src="js/index.js"></script>

+ 106 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -5792,6 +5792,53 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             NumberFormat nf = NumberFormat.getPercentInstance();
             li.put("proportion",nf.format(divide));
         });
+        Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<LeaveSheet> leaveSheet = leaveSheetMapper.selectLeave(companyId,startDate,endDate);
+        List<Department> deptName = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+        TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId));
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
+        LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
+        for (Map<String, Object> map : list) {
+            //取部门名
+            for (Department department : deptName) {
+                if (map.get("deptId").toString().equals(department.getDepartmentId().toString())){
+                    if (wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
+                        map.put("deptName",getWxDepartment(department));
+                    }else {
+                        map.put("deptName",getSupDepartment(department));
+                    }
+                    continue;
+                }
+            }
+            //计算请假时间
+            Float leaveSum = 0F;
+            for (LeaveSheet sheet : leaveSheet) {
+                if (sheet.getOwnerId().equals(map.get("userId"))){
+//                    System.err.println(sheet.getOwnerName());
+//                    System.err.println(sheet.getStartDate());
+//                    System.err.println(sheet.getEndDate());
+                    Float timeHours = sheet.getTimeHours();
+                    //若请假开始时间不在筛选时间内
+                    if (sheet.getStartDate().isBefore(localStartDate)) {
+                        long day = localStartDate.toEpochDay() - sheet.getStartDate().toEpochDay();
+                        timeHours -= day * allDay.getAllday();
+//                        System.err.println("请假开始时间不在筛选时间内,应减去" + day * allDay.getAllday()+"小时");
+                    }
+                    //若请假结束时间不在筛选时间内
+                    if (sheet.getEndDate().isAfter(localEndDate)) {
+                        long day = sheet.getEndDate().toEpochDay() - localEndDate.toEpochDay();
+                        timeHours -= day * allDay.getAllday();
+//                        System.err.println("请假结束时间不在筛选时间内,应减去"+day * allDay.getAllday()+"小时");
+                    }
+//                    System.err.println("计算完的时间为:" + timeHours);
+                    leaveSum += timeHours;
+                }
+            }
+//            System.err.println("总时间为:"+leaveSum);
+            map.put("leaveSum",leaveSum + "h");
+        }
         HashMap map=new HashMap();
         map.put("total",total);
         map.put("result",list);
@@ -5826,11 +5873,55 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
         }
         List<Map<String, Object>> list = projectMapper.getUserWorkingTimeList(userId, user.getCompanyId(), startDate, endDate, projectId,null,null,null,deptIds);
-        //String[] string={"人员","工号","普通项目工时","公共项目工时","总工时","公共项目工时占比"};
-        String[] string={MessageUtils.message("entry.personnel"),MessageUtils.message("entry.No"),MessageUtils.message("entry.GenProHours"),MessageUtils.message("entry.PubProHours"),MessageUtils.message("entry.totalManHours"),MessageUtils.message("entry.PubProHoursProp")};
+        //String[] string={"人员","部门","工号","请假时长","普通项目工时","公共项目工时","总工时","公共项目工时占比"};
+        String[] string={MessageUtils.message("entry.personnel"),MessageUtils.message("excel.department"),MessageUtils.message("entry.No"),MessageUtils.message("leave.duration"),MessageUtils.message("entry.GenProHours"),MessageUtils.message("entry.PubProHours"),MessageUtils.message("entry.totalManHours"),MessageUtils.message("entry.PubProHoursProp")};
         List<List<String>> dataList=new ArrayList<>();
         dataList.add(Arrays.asList(string));
+        Integer companyId = user.getCompanyId();
+        List<LeaveSheet> leaveSheet = leaveSheetMapper.selectLeave(companyId,startDate,endDate);
+        List<Department> deptName = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+        TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId));
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
+        LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
         for(Map<String,Object> item:list){
+            //取部门名
+            for (Department department : deptName) {
+                if (item.get("deptId").toString().equals(department.getDepartmentId().toString())){
+                    if (wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
+                        item.put("deptName",getWxDepartment(department));
+                    }else {
+                        item.put("deptName",getSupDepartment(department));
+                    }
+                    continue;
+                }
+            }
+            //计算请假时间
+            Float leaveSum = 0F;
+            for (LeaveSheet sheet : leaveSheet) {
+                if (sheet.getOwnerId().equals(item.get("userId"))){
+//                    System.err.println(sheet.getOwnerName());
+//                    System.err.println(sheet.getStartDate());
+//                    System.err.println(sheet.getEndDate());
+                    Float timeHours = sheet.getTimeHours();
+                    //若请假开始时间不在筛选时间内
+                    if (sheet.getStartDate().isBefore(localStartDate)) {
+                        long day = localStartDate.toEpochDay() - sheet.getStartDate().toEpochDay();
+                        timeHours -= day * allDay.getAllday();
+//                        System.err.println("请假开始时间不在筛选时间内,应减去" + day * allDay.getAllday()+"小时");
+                    }
+                    //若请假结束时间不在筛选时间内
+                    if (sheet.getEndDate().isAfter(localEndDate)) {
+                        long day = sheet.getEndDate().toEpochDay() - localEndDate.toEpochDay();
+                        timeHours -= day * allDay.getAllday();
+//                        System.err.println("请假结束时间不在筛选时间内,应减去"+day * allDay.getAllday()+"小时");
+                    }
+//                    System.err.println("计算完的时间为:" + timeHours);
+                    leaveSum += timeHours;
+                }
+            }
+//            System.err.println("总时间为:"+leaveSum);
+            item.put("leaveSum",leaveSum + "h");
             List<String> subList=new ArrayList<>();
             double isPublic = (double) item.get("isPublic");
             double workingTime = (double) item.get("workingTime");
@@ -5842,7 +5933,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }else {
                 subList.add(String.valueOf(item.get("username")));
             }
+            subList.add(String.valueOf(item.get("deptName")));
             subList.add(String.valueOf(StringUtils.isEmpty(item.get("jobNumber"))?"":item.get("jobNumber")));
+            subList.add(String.valueOf(item.get("leaveSum")));
             subList.add(String.valueOf(item.get("unPublic")));
             subList.add(String.valueOf(item.get("isPublic")));
             subList.add(String.valueOf(item.get("workingTime")));
@@ -5934,8 +6027,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<Map<String,Object>> dataList=new ArrayList<>();
             long days =dateTimeList.size();
             List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
-                    &&((ls.getStartDate().isAfter(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))&&(ls.getStartDate().isBefore(ChronoLocalDate.from(eDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(eDate))))
-                    &&((ls.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))&&(ls.getEndDate().isAfter(ChronoLocalDate.from(sDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(sDate))))).collect(Collectors.toList());
+                    &&((ls.getStartDate().isBefore(ChronoLocalDate.from(eDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(eDate))))
+                    &&((ls.getEndDate().isAfter(ChronoLocalDate.from(sDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(sDate))))).collect(Collectors.toList());
             TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
             timelinessRateVO.setUserName(user.getName());
             timelinessRateVO.setJobNumber(user.getJobNumber());
@@ -5949,6 +6042,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //去掉填非工作日
             for (LocalDateTime localDateTime : dateTimeList) {
                 if(mapList!=null){
+                    //在非工作日下 填报了的情况下 及时填报了就算作及时率计算的基数
                     if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())&&!mapList.stream().anyMatch(ml->{
                         Object date = ml.get("createDate");
                         LocalDate createDate = LocalDate.parse(String.valueOf(date));
@@ -5964,7 +6058,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
             }
             //请假的不参与及时率统计
-            //todo: 此处对请假的 数据做处理 计请假填报
+            //todo: 此处对请假的 数据做处理 计请假填报 去除请假日期中的需要填报的日期
             long daysWithLeave =days;
             if(leaveSheets.size()>0){
                 for (LeaveSheet leaveSheet : leaveSheets) {
@@ -5974,7 +6068,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }else{
                         days-=leaveSheet.getTimeDays();
                     }
+                    System.out.println(leaveDateList.size());
                     for (LocalDateTime localDateTime : leaveDateList) {
+                        //todo: 请假区间当中有非工作日在之前被当作 不需填报 所以要加上 保证基数正确
+                        if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
+                            days+=1;
+                            continue;
+                        }
                         if(localDateTime.isBefore(sDate)||localDateTime.isAfter(eDate)){
                             days++;
                             continue;
@@ -5994,6 +6094,7 @@ 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<>();

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

@@ -4821,7 +4821,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         LocalDate endDate = LocalDate.parse(dateStr,df);
         endDate=endDate.plusMonths(1);
         List<Map<String,Object>> resultList=reportMapper.getUploadThirdReportData(companyId,startDate,endDate);
-        String url="http://10.20.35.48:8009/dataservice/apiInfo/queryData/prd/sap/sysLaborhour";
+        String url="http://116.236.135.252:18009/dataservice/apiInfo/queryData/prd/sap/sysLaborhour";
         //认证的账号和密码
         HttpHeaders headers=new HttpHeaders();
         JSONObject param = new JSONObject();

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -328,6 +328,7 @@ public class TimingTask {
         needSynLeave.forEach(item->{
             companyId.add(item.getCompanyId());
         });
+        companyId.add(-1);
         //查询更新审批中的请假单
         List<LeaveSheet> approvalLeave = leaveSheetMapper.selectApprovalList();
         //插入请假单并更新审核中的请假单

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -689,6 +689,7 @@
     <!--获取人员工时-->
     <select id="getUserWorkingTimeList" resultType="java.util.Map">
         SELECT  report.`creator_id` AS userId, user.`name` AS username,user.corpwx_userid as corpwxUserId,user.job_number as jobNumber,
+        user.department_id As deptId,
         ifnull(SUM(if(project.is_public=0,report.working_time,null)),0) as unPublic,
         ifnull(SUM(if(project.is_public=1,report.working_time,null)),0) as isPublic,
         ifnull(SUM(report.`working_time`),0) AS workingTime