Browse Source

时间统计接口问题修复

fuyuhchuan 10 months ago
parent
commit
cb05694152

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/PmWorkContentMapper.java

@@ -26,7 +26,7 @@ public interface PmWorkContentMapper extends CrudMapper<PmWorkContent> {
                                             @Param("endTime") LocalDateTime endTime,
                                             @Param("userId") Long userId);
 
-    List<PmProjectTotalWorkTimeVo> timeCount(@Param("startTime") LocalDateTime startTime,
+/*    List<PmProjectTotalWorkTimeVo> timeCount(@Param("startTime") LocalDateTime startTime,
                                              @Param("endTime") LocalDateTime endTime,
-                                             @Param("userId") Long userId);
+                                             @Param("userId") Long userId);*/
 }

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

@@ -226,6 +226,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             rp.setTenantId(pmWorkReport.getTenantId());
             rp.setUpdateBy(SecurityUtils.getUsername());
             rp.setUpdateTime(LocalDateTime.now());
+            rp.setTotalHours(totalWorkTime);
             pmWorkReportMapper.updateById(rp);
 
             LambdaQueryWrapper<PmWorkContent> queryWrapper = Wrappers.lambdaQuery();
@@ -276,9 +277,8 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             weekTotalMap.put("WeekWorkTimeTotal", 0);
             weekMap.put("WeeklyData", week);
         }
-        List<PmProjectTotalWorkTimeVo> workTimeVoListW = pmWorkContentMapper.timeCount(startOfWeekDateTime, endOfWeekDateTime, SecurityUtils.getUserId());
-        for (int i = 0; i < workTimeVoListW.size(); i++) {
-            weekTotal = weekTotal.add(workTimeVoListW.get(i).getTotalWorkTime());
+        for (int i = 0; i < week.size(); i++) {
+            weekTotal = weekTotal.add(week.get(i).getWorkTime());
         }
         BigDecimal totalPercentageW = BigDecimal.ZERO;
         for (int a = 0; a < week.size(); a++) {
@@ -303,9 +303,8 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             weekTotalMap.put("MonthWorkTimeTotal", 0);
             weekMap.put("MonthlyData", month);
         }
-        List<PmProjectTotalWorkTimeVo> workTimeVoListM = pmWorkContentMapper.timeCount(startOfMonthDateTime, endOfMonthDateTime, SecurityUtils.getUserId());
-        for (int i = 0; i < workTimeVoListM.size(); i++) {
-            monthTotal = monthTotal.add(workTimeVoListM.get(i).getTotalWorkTime());
+        for (int i = 0; i < month.size(); i++) {
+            monthTotal = monthTotal.add(month.get(i).getWorkTime());
         }
         BigDecimal totalPercentageM = BigDecimal.ZERO;
         for (int b = 0; b < month.size(); b++) {

+ 6 - 9
service-iot/service-iot-biz/src/main/resources/mapper/iot/PmWorkContentMapper.xml

@@ -19,15 +19,12 @@
         <result column="tenant_id" property="tenantId"/>
     </resultMap>
     <select id="workTimeCount" resultType="com.usky.iot.service.vo.PmProjectWorkTimeVo">
-        SELECT project_name, SUM(work_time) as workTime
-        FROM pm_work_content
-        WHERE submitter_id = #{userId} AND create_time BETWEEN #{startTime} AND #{endTime}
-        GROUP BY project_name
+    SELECT pc.project_name, SUM(pc.work_time) as workTime
+    FROM pm_work_content pc
+    JOIN pm_work_report pr ON pc.report_id = pr.id
+    WHERE pr.submitter_id = #{userId}
+    AND pr.report_date BETWEEN #{startTime} AND #{endTime}
+    GROUP BY pc.project_name
     </select>
-    <select id="timeCount" resultType="com.usky.iot.service.vo.PmProjectTotalWorkTimeVo">
-    SELECT SUM(work_time) as totalWorkTime
-    FROM pm_work_content
-    WHERE submitter_id = #{userId} AND create_time BETWEEN #{startTime} AND #{endTime}
-</select>
 
 </mapper>