Pārlūkot izejas kodu

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

wutt 5 gadi atpakaļ
vecāks
revīzija
ed6066b3ff

+ 10 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -37,6 +37,16 @@ public class ReportController {
         return reportService.getReportList(date, request);
     }
 
+    /**
+     * 根据时间 获取本人报告信息 以及工时
+     * date 日期 格式yyyy-mm-dd
+     */
+    @RequestMapping("/getReport")
+    public HttpRespMsg getReport(@RequestParam String date) {
+        return reportService.getReport(date, request);
+    }
+
+
     /**
      * 新增或编辑报告
      * id 报告id 编辑时传

+ 14 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeCalculationController.java

@@ -51,9 +51,23 @@ public class TimeCalculationController {
         return timeCalculationService.getDevianceList(pageIndex, pageSize, userId, actionCode, date, request);
     }
 
+    /**
+     * 获取相同公司内所有人某天的时间统计
+     * date 日期
+     */
     @RequestMapping("/getTimeStatistics")
     public HttpRespMsg getTimeStatistics(@RequestParam String date) {
         return timeCalculationService.getTimeStatistics(date, request);
     }
+
+    /**
+     * 获取一段时间内某人的工作
+     * startDate 开始日期 格式yyyy-mm-dd
+     * endDate 结束日期 格式yyyy-mm-dd
+     */
+    @RequestMapping("/getDuration")
+    public HttpRespMsg getDuration(@RequestParam String startDate, @RequestParam String endDate) {
+        return timeCalculationService.getDuration(startDate, endDate, request);
+    }
 }
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -17,6 +17,8 @@ import javax.servlet.http.HttpServletRequest;
 public interface ReportService extends IService<Report> {
     HttpRespMsg getReportList(String date, HttpServletRequest request);
 
+    HttpRespMsg getReport(String date, HttpServletRequest request);
+
     HttpRespMsg editReport(Report report);
 
     HttpRespMsg deleteReport(Integer reportId);

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TimeCalculationService.java

@@ -21,4 +21,6 @@ public interface TimeCalculationService extends IService<TimeCalculation> {
                                 String userId, Integer actionCode, String date, HttpServletRequest request);
 
     HttpRespMsg getTimeStatistics(String date, HttpServletRequest request);
+
+    HttpRespMsg getDuration(String startDate, String endDate, HttpServletRequest request);
 }

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

@@ -3,16 +3,20 @@ package com.management.platform.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Report;
+import com.management.platform.entity.TimeCalculation;
 import com.management.platform.mapper.ReportMapper;
+import com.management.platform.mapper.TimeCalculationMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.ReportService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -36,6 +40,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     private ReportMapper reportMapper;
     @Resource
     private UserMapper userMapper;
+    @Resource
+    private TimeCalculationMapper timeCalculationMapper;
 
     //获取报告列表
     @Override
@@ -56,6 +62,35 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
+    //获取本人某天工作时间和已提交的报告
+    @Override
+    public HttpRespMsg getReport(String date, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            String userId = userMapper.selectById(request.getHeader("Token")).getId();
+            Map<String, Object> resultMap = new HashMap<>();
+            //获取某日本人的所有日志
+            resultMap.put("report", reportMapper.selectList(new QueryWrapper<Report>()
+                    .eq("user_id", userId)));
+            //顺便再获取一下可分配时间
+            Double totalWorkingTime = 0.0;
+            //此处认为0是工作时间
+            for (TimeCalculation timeCalculation : timeCalculationMapper.selectList(new QueryWrapper<TimeCalculation>()
+                    .eq("date", LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd")))
+                    .eq("user_id", userId)
+                    .eq("action_type", 0))) {
+                totalWorkingTime += timeCalculation.getDuration();
+            }
+            resultMap.put("time", totalWorkingTime);
+            httpRespMsg.data = resultMap;
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        } catch (DateTimeParseException e) {
+            httpRespMsg.setError("日期格式有误");
+        }
+        return httpRespMsg;
+    }
+
     //新增或编辑报告
     @Override
     public HttpRespMsg editReport(Report report) {

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

@@ -319,13 +319,13 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
                 }
                 sMap.put(temp.getValue(), temp.getKey());
             }
-            sMap = ((TreeMap)sMap).descendingMap();
+            sMap = ((TreeMap) sMap).descendingMap();
             Iterator it = sMap.keySet().iterator();
             Integer k1 = (Integer) it.next();
             Integer k2 = (Integer) it.next();
             Integer color1 = sMap.get(k1);
             Integer color2 = sMap.get(k2);
-            System.out.println("kkkk=="+k1+","+color1 + "," + k2 + "," + color2);
+            System.out.println("kkkk==" + k1 + "," + color1 + "," + k2 + "," + color2);
             System.out.println("最.." + maxCnt + ", key=" + key);
             rgb[0] = (key & 0xff0000) >> 16;
             rgb[1] = (key & 0xff00) >> 8;
@@ -335,15 +335,15 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
             int colorPercent = maxCnt * 100 / totalPixl;
             if (colorPercent < 50) {
                 //可能存在2中底色, 大布局的底色和小模块的底色,都算底色。
-                int secPercent = k2 * 100/totalPixl;
+                int secPercent = k2 * 100 / totalPixl;
                 rgb[0] = (color2 & 0xff0000) >> 16;
                 rgb[1] = (color2 & 0xff00) >> 8;
                 rgb[2] = (color2 & 0xff);
-                System.out.println("二级底色色值为: " + rgb[0] + ", " + rgb[1]+", "+rgb[2]);
-                System.out.println("二级底色比例=="+secPercent);
-                colorPercent = (k1 + k2) * 100/totalPixl;
+                System.out.println("二级底色色值为: " + rgb[0] + ", " + rgb[1] + ", " + rgb[2]);
+                System.out.println("二级底色比例==" + secPercent);
+                colorPercent = (k1 + k2) * 100 / totalPixl;
             }
-            System.out.println("总底色比例=="+colorPercent);
+            System.out.println("总底色比例==" + colorPercent);
             //计算底色是否是连续分布的
             int windowSize = 50;
             int pureColorBlockCnt = 0;
@@ -454,7 +454,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
                         .setStartTime(currentTime)
                         .setEndTime(currentTime)
                         //第一次的持续时间默认为最短的一次间隔 以后为开始时间和结束时间只差 以防看一眼不计入时间的现象
-                        .setDuration((double) DETECTION_INTERVAL / 3600);
+                        .setDuration(0.0);
                 timeCalculationMapper.insert(timeCalculation);
             }
             /*之后可能还需要处理跨越一天的情况*/

+ 19 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TimeCalculationServiceImpl.java

@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDate;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.*;
 
 /**
@@ -110,4 +111,22 @@ public class TimeCalculationServiceImpl extends ServiceImpl<TimeCalculationMappe
         }
         return httpRespMsg;
     }
+
+    //根据日期段获取本人的工作时间段
+    @Override
+    public HttpRespMsg getDuration(String startDate, String endDate, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            httpRespMsg.data = timeCalculationMapper.selectList(new QueryWrapper<TimeCalculation>()
+                    .eq("user_id", request.getHeader("Token"))
+                    .between("date",
+                            LocalDate.parse(startDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")),
+                            LocalDate.parse(endDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        } catch (DateTimeParseException e) {
+            httpRespMsg.setError("日期格式有误");
+        }
+        return httpRespMsg;
+    }
 }