Browse Source

Merge branch 'fu-normal-push' of uskycloud/usky-modules into master

gez 3 months ago
parent
commit
8239366a67

+ 4 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkReportController.java

@@ -63,8 +63,10 @@ public class PmWorkReportController {
      * @return
      */
     @GetMapping("/workTimeTotal")
-    public ApiResult<PmProjectTotalWorkTimeVo> weekWork(Integer dateType, Integer dateNum) {
-        return ApiResult.success(pmWorkReportService.countTime(dateType, dateNum));
+    public ApiResult<PmProjectTotalWorkTimeVo> weekWork(@RequestParam(value = "nowYear", required = false) Integer nowYear,
+                                                        @RequestParam(value = "dateType") Integer dateType,
+                                                        @RequestParam(value = "dateNum") Integer dateNum) {
+        return ApiResult.success(pmWorkReportService.countTime(nowYear, dateType, dateNum));
     }
 
     /**

+ 2 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkReportService.java

@@ -7,6 +7,7 @@ import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.service.vo.PmProjectTotalWorkTimeVo;
 
 import java.time.LocalDateTime;
+import java.time.temporal.TemporalAccessor;
 import java.util.List;
 import java.util.Map;
 
@@ -39,7 +40,7 @@ public interface PmWorkReportService extends CrudService<PmWorkReport> {
      * 工时计算
      * @return
      */
-    PmProjectTotalWorkTimeVo countTime(Integer dateType, Integer dateNum);
+    PmProjectTotalWorkTimeVo countTime(Integer nowYear, Integer dateType, Integer dateNum);
 
     /**
      * 定时发送

+ 9 - 5
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkReportServiceImpl.java

@@ -33,6 +33,8 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.Year;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAccessor;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -464,11 +466,11 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
     }
 
     @Override
-    public PmProjectTotalWorkTimeVo countTime(Integer dateType, Integer dateNum) {
+    public PmProjectTotalWorkTimeVo countTime(Integer nowDate, Integer dateType, Integer dateNum) {
         int scale = 4;
         RoundingMode roundingMode = RoundingMode.HALF_UP;
         PmProjectTotalWorkTimeVo projectTotalWorkTimeVo = new PmProjectTotalWorkTimeVo();
-        Map<String, LocalDateTime> stringLocalDateTimeMap = countWeekOrMonth(dateType, dateNum);
+        Map<String, LocalDateTime> stringLocalDateTimeMap = countWeekOrMonth(nowDate, dateType, dateNum);
         LocalDateTime startTime = stringLocalDateTimeMap.get("start");
         LocalDateTime endTime = stringLocalDateTimeMap.get("end");
         BigDecimal totalWorkTime = BigDecimal.ZERO;
@@ -518,10 +520,12 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
      * @param: [dateType, dateNum]
      * @return: java.util.Map<java.lang.String, java.time.LocalDateTime>
      **/
-    public Map<String, LocalDateTime> countWeekOrMonth(Integer dateType, Integer dateNum) {
+    public Map<String, LocalDateTime> countWeekOrMonth(Integer nowYear, Integer dateType, Integer dateNum) {
         Map<String, LocalDateTime> timePeriod = new HashMap<>();
-        LocalDate today = LocalDate.now();
-        Year currentYear = Year.from(today);
+        Year currentYear = Year.now();
+        if (nowYear != null && nowYear > 0) {
+            currentYear = Year.of(nowYear);
+        }
 
         if (dateType == 1) {
             LocalDate lastDayOfYear = currentYear.atDay(currentYear.length());