Преглед изворни кода

APP 端 总览统计逻辑调整

zhulu пре 1 година
родитељ
комит
3895d6e6c4

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/mapper/AppCockpitMapper.java

@@ -35,7 +35,7 @@ public interface AppCockpitMapper extends BaseMapper {
      * @param prevDate
      * @return
      */
-    AppOverviewTaskInfoDto selectOverViewResumptionTaskInfo(@Param("orgPath") String orgPath, @Param("date") Date date, @Param("prevdate") Date prevDate);
+    AppOverviewTaskInfoDto selectOverViewResumptionTaskInfo(@Param("orgPath") String orgPath, @Param("date") Date date,@Param("end") Date end, @Param("prevdate") Date prevDate);
 
     /**
      * 安全检查本周期、上周期完成情况
@@ -45,7 +45,7 @@ public interface AppCockpitMapper extends BaseMapper {
      * @param prevDate
      * @return
      */
-    AppOverviewTaskInfoDto selectOverViewSafetyCheckTaskInfo(@Param("orgPath") String orgPath, @Param("date") Date date, @Param("prevdate") Date prevDate);
+    AppOverviewTaskInfoDto selectOverViewSafetyCheckTaskInfo(@Param("orgPath") String orgPath, @Param("date") Date date,@Param("end") Date end, @Param("prevdate") Date prevDate);
 
     /**
      * 教育本周期、上周期完成情况

+ 24 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java

@@ -207,6 +207,8 @@ public class AppCockpitServiceImpl implements AppCockpitService {
         Date currentMonthEnd = DateUtil.endOfMonth(new Date());
         Date prevMonth = DateUtil.beginOfMonth(new Date()).offset(DateField.MONTH, -1);
 
+
+
         CompletableFuture<AppOverviewVo> orgOverview = CompletableFuture.supplyAsync(() -> {
                     AppOverviewVo result = appCockpitMapper.selectOrgOverview(org.getPath());
                     if (ObjectUtil.isNull(result)) {
@@ -229,7 +231,11 @@ public class AppCockpitServiceImpl implements AppCockpitService {
 
         CompletableFuture<AppOverviewTaskInfoDto> resumption = CompletableFuture.supplyAsync(() ->
                 {
-                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewResumptionTaskInfo(org.getPath(), currentMonth, prevMonth);
+                    Date currentDay = DateUtil.beginOfDay(new Date());
+                    Date currentDayEnd = DateUtil.endOfDay(new Date());
+                    Date prevDay = DateUtil.beginOfDay(new Date()).offset(DateField.DAY_OF_YEAR, -1);
+
+                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewResumptionTaskInfo(org.getPath(),currentDay, currentDayEnd, prevDay);
                     if (ObjectUtil.isNull(result)) {
                         result = new AppOverviewTaskInfoDto();
                     }
@@ -240,7 +246,7 @@ public class AppCockpitServiceImpl implements AppCockpitService {
 
         CompletableFuture<AppOverviewTaskInfoDto> safetyCheck = CompletableFuture.supplyAsync(() ->
                 {
-                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewSafetyCheckTaskInfo(org.getPath(), currentMonth, prevMonth);
+                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewSafetyCheckTaskInfo(org.getPath(), currentMonth,currentMonthEnd, prevMonth);
                     if (ObjectUtil.isNull(result)) {
                         result = new AppOverviewTaskInfoDto();
                     }
@@ -251,7 +257,11 @@ public class AppCockpitServiceImpl implements AppCockpitService {
 
         CompletableFuture<AppOverviewTaskInfoDto> edu = CompletableFuture.supplyAsync(() ->
                 {
-                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewEduTaskInfo(org.getPath(), currentMonth, currentMonthEnd, prevMonth);
+                    Date currentQuarter = DateUtil.beginOfQuarter(new Date());
+                    Date currentQuarterEnd = DateUtil.endOfQuarter(new Date());
+                    Date prevQuarter = DateUtil.beginOfQuarter(new Date()).offset(DateField.MONTH, -3);
+
+                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewEduTaskInfo(org.getPath(), currentQuarter, currentQuarterEnd, prevQuarter);
                     if (ObjectUtil.isNull(result)) {
                         result = new AppOverviewTaskInfoDto();
                     }
@@ -262,7 +272,11 @@ public class AppCockpitServiceImpl implements AppCockpitService {
 
         CompletableFuture<AppOverviewTaskInfoDto> monitor = CompletableFuture.supplyAsync(() ->
                 {
-                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewMonitorTaskInfo(org.getPath(), currentMonth, currentMonthEnd, prevMonth);
+                    Date currentWeek = DateUtil.beginOfWeek(new Date(),true);
+                    Date currentWeekEnd = DateUtil.endOfWeek(new Date(),true);
+                    Date prevWeek = DateUtil.beginOfWeek(new Date()).offset(DateField.DAY_OF_WEEK, -7);
+
+                    AppOverviewTaskInfoDto result = appCockpitMapper.selectOverViewMonitorTaskInfo(org.getPath(), currentWeek, currentWeekEnd, prevWeek);
                     if (ObjectUtil.isNull(result)) {
                         result = new AppOverviewTaskInfoDto();
                     }
@@ -309,6 +323,7 @@ public class AppCockpitServiceImpl implements AppCockpitService {
         vo.setGa38(new LinkedHashMap<>());
         vo.getGa38().put("GA382021", computeGa38(orgga38.get().getTotal(), orgga38.get().getGa382021(), orgga38.get().getGa382021current(), orgga38.get().getGa382021prev()));
         vo.getGa38().put("GA382015", computeGa38(orgga38.get().getTotal(), orgga38.get().getGa382015(), orgga38.get().getGa382015current(), orgga38.get().getGa382015prev()));
+        vo.getGa38().put("GA38Total", computeGa38Total(orgga38.get().getTotal(),orgga38.get().getGa382021(),orgga38.get().getGa382015()));
 
         vo.setTaskInfo(new LinkedHashMap<>());
         vo.getTaskInfo().put("日常履职", computeOverviewItem(resumption.get()));
@@ -594,4 +609,9 @@ public class AppCockpitServiceImpl implements AppCockpitService {
         vo.setCurrentCompletedCount(currentCompleted);
         return vo;
     }
+    private AppOverviewItemVo computeGa38Total(int total, int ga382021, int ga382015) {
+        AppOverviewItemVo vo = new AppOverviewItemVo();
+        vo.setCurrentCompletedRate(NumberUtils.computeRate(total, ga382021+ga382015));
+        return vo;
+    }
 }

+ 31 - 29
soc-modules/soc-modules-core/src/main/resources/mapper/board/AppCockpitMapper.xml

@@ -49,62 +49,64 @@
           and o.path like concat(#{orgPath}, '%')
     </select>
     <select id="selectOverViewResumptionTaskInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">
-        SELECT sum(if(t.ymd_date >= #{date}, 1, 0))                            as total,
-               sum(if(t.ymd_date >= #{date}, (if(t.`status` = 3, 1, 0)), 0))   as completed,
-               sum(if(t.ymd_date &lt; #{date}, 1, 0))                          as prevTotal,
-               sum(if(t.ymd_date &lt; #{date}, (if(t.`status` = 3, 1, 0)), 0)) as prevcompleted
+        SELECT sum(if(t.plan_end_time >= #{date}, 1, 0))                            as total,
+               sum(if(t.plan_end_time >= #{date}, (if(t.`status` = 3, 1, 0)), 0))   as completed,
+               sum(if(t.plan_end_time &lt; #{date}, 1, 0))                          as prevTotal,
+               sum(if(t.plan_end_time &lt; #{date}, (if(t.`status` = 3, 1, 0)), 0)) as prevcompleted
         FROM core_resumption t
-                 inner join core_resumption_plan p on t.plan_id = p.id and p.plan_cycle &lt; 5
-        WHERE t.ymd_date >= #{prevdate}
+                 inner join core_resumption_plan p on t.plan_id = p.id and p.plan_exec in (2,3,4)
+        WHERE plan_end_time >= #{prevdate}
+          and plan_end_time &lt;= #{end}
           and t.org_path like concat(#{orgPath}, '%')
     </select>
 
     <select id="selectOverViewSafetyCheckTaskInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">
-        SELECT sum(if(t.ymd_date >= #{date}, 1, 0))                            as total,
-               sum(if(t.ymd_date >= #{date}, (if(t.`status` = 3, 1, 0)), 0))   as completed,
-               sum(if(t.ymd_date &lt; #{date}, 1, 0))                          as prevTotal,
-               sum(if(t.ymd_date &lt; #{date}, (if(t.`status` = 3, 1, 0)), 0)) as prevcompleted
+        SELECT sum(if(t.plan_end_time >= #{date}, 1, 0))                            as total,
+               sum(if(t.plan_end_time >= #{date}, (if(t.`status` = 3, 1, 0)), 0))   as completed,
+               sum(if(t.plan_end_time &lt; #{date}, 1, 0))                          as prevTotal,
+               sum(if(t.plan_end_time &lt; #{date}, (if(t.`status` = 3, 1, 0)), 0)) as prevcompleted
         FROM core_safety_task t
                  INNER JOIN core_safecheck_plan p on t.plan_id = p.id and p.check_type = 3
-        WHERE ymd_date >= #{prevdate}
+        WHERE plan_end_time >= #{prevdate}
+            and plan_end_time &lt;= #{end}
           and org_path like concat(#{orgPath}, '%')
     </select>
 
     <select id="selectOverViewEduTaskInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">
-        SELECT sum(if(t.start_date >= #{date}, 1, 0))                      as total,
-               sum(if(t.start_date >= #{date} and t.`status` = 2, 1, 0))   as completed,
-               sum(if(t.start_date &lt; #{date}, 1, 0))                    as prevTotal,
-               sum(if(t.start_date &lt; #{date} and t.`status` = 2, 1, 0)) as prevcompleted
+        SELECT sum(if(t.end_date >= #{date}, 1, 0))                      as total,
+               sum(if(t.end_date >= #{date} and t.`status` = 2, 1, 0))   as completed,
+               sum(if(t.end_date &lt; #{date}, 1, 0))                    as prevTotal,
+               sum(if(t.end_date &lt; #{date} and t.`status` = 2, 1, 0)) as prevcompleted
         FROM core_edu_training_task t
                  left join core_edu_training_plan p on t.plan_id = p.id
-        WHERE t.start_date >= #{prevdate}
-          and t.start_date &lt;= #{end}
+        WHERE t.end_date >= #{prevdate}
+          and t.end_date &lt;= #{end}
           and t.org_path like concat(#{orgPath}, '%')
           and (p.plan_cycle &lt; 4 or t.plan_id is null)
     </select>
 
     <select id="selectOverViewDrillTaskInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">
-        SELECT sum(if(t.start_date >= #{date}, 1, 0))                            as total,
-               sum(if(t.start_date >= #{date}, (if(t.`status` = 4, 1, 0)), 0))   as completed,
-               sum(if(t.start_date &lt; #{date}, 1, 0))                          as prevTotal,
-               sum(if(t.start_date &lt; #{date}, (if(t.`status` = 4, 1, 0)), 0)) as prevcompleted
+        SELECT sum(if(t.end_date >= #{date}, 1, 0))                            as total,
+               sum(if(t.end_date >= #{date}, (if(t.`status` = 4, 1, 0)), 0))   as completed,
+               sum(if(t.end_date &lt; #{date}, 1, 0))                          as prevTotal,
+               sum(if(t.end_date &lt; #{date}, (if(t.`status` = 4, 1, 0)), 0)) as prevcompleted
         FROM core_drill_task t
                  left join core_drill_plan p on t.plan_id = p.id
-        WHERE t.start_date >= #{prevdate}
-          and t.start_date &lt;= #{end}
+        WHERE t.end_date >= #{prevdate}
+          and t.end_date &lt;= #{end}
           and t.org_path like concat(#{orgPath}, '%')
           and (p.plan_cycle &lt; 5 or t.plan_id is null)
     </select>
 
     <select id="selectOverViewMonitorTaskInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">
-        SELECT sum(if(t.ymd_date >= #{date}, 1, 0))                      as total,
-               sum(if(t.ymd_date >= #{date} and t.`status` = 2, 1, 0))   as completed,
-               sum(if(t.ymd_date &lt; #{date}, 1, 0))                    as prevTotal,
-               sum(if(t.ymd_date &lt; #{date} and t.`status` = 2, 1, 0)) as prevcompleted
+        SELECT sum(if(t.plan_end_time >= #{date}, 1, 0))                      as total,
+               sum(if(t.plan_end_time >= #{date} and t.`status` = 2, 1, 0))   as completed,
+               sum(if(t.plan_end_time &lt; #{date}, 1, 0))                    as prevTotal,
+               sum(if(t.plan_end_time &lt; #{date} and t.`status` = 2, 1, 0)) as prevcompleted
         FROM core_monitoring_retrieval_task t
                  inner join core_monitoring_retrieval_plan p on t.plan_id = p.id and p.plan_cycle &lt; 4
-        WHERE t.ymd_date >= #{prevdate}
-          and t.ymd_date &lt; #{end}
+        WHERE t.plan_end_time >= #{prevdate}
+          and t.plan_end_time &lt; #{end}
           and t.org_path like concat(#{orgPath}, '%')
     </select>
     <select id="selectOverViewQuestionInfo" resultType="com.xunmei.core.board.dto.app.AppOverviewTaskInfoDto">