Quellcode durchsuchen

大屏定时任务相关接口开发

jichaobo vor 2 Jahren
Ursprung
Commit
ca42ad4877

+ 9 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseScreenController.java

@@ -38,9 +38,15 @@ public class BscEnterpriseScreenController {
     }
 
 
-    @GetMapping("postInspectStatistics")
-    public ApiResult<Object> postInspectStatistics(@RequestParam(value = "companyId") String companyId) {
-        return ApiResult.success(bscEnterpriseScreenService.buildScoreStatistics(companyId));
+    /**
+     * 大屏定时任务(手动触发)
+     *
+     * @return
+     */
+    @GetMapping("dataSynchro")
+    public ApiResult dataSynchro() {
+        bscEnterpriseScreenService.dataSynchro();
+        return ApiResult.success();
     }
 
 }

+ 9 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/TaskController.java

@@ -1,6 +1,7 @@
 package com.usky.fire.controller.web;
 
 
+import com.usky.fire.service.BscEnterpriseScreenService;
 import com.usky.fire.service.MhPostInspectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -17,12 +18,20 @@ public class TaskController {
     @Autowired
     private MhPostInspectService mhPostInspectService;
 
+    @Autowired
+    private BscEnterpriseScreenService bscEnterpriseScreenService;
+
     //    @Scheduled(cron = "0/5 * *  * * ?") // 间隔5秒执行
     @Scheduled(cron = "0 0/5 * * * ? ") // 间隔5分钟执行
     public void task() {
         System.out.println(Thread.currentThread().getName() + "定时任务执行中");
         mhPostInspectService.postInspectAnswerRequest();
+    }
 
+    @Scheduled(cron = "0 0 * * * ? ")
+    public void task1() {
+        System.out.println(Thread.currentThread().getName() + "大屏定时任务执行中");
+        bscEnterpriseScreenService.dataSynchro();
     }
 
 

+ 7 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyService.java

@@ -29,4 +29,11 @@ public interface BaseCompanyService extends CrudService<BaseCompany> {
      * @return
      */
     List<BaseCompany> companySelect(List<String> companyIdList);
+
+    /**
+     * 所有单位ID的查询
+     *
+     * @return
+     */
+    List<BaseCompany> companyIdList();
 }

+ 23 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseScreenService.java

@@ -3,6 +3,8 @@ package com.usky.fire.service;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.BscEnterpriseScreen;
 
+import java.util.List;
+
 /**
  * <p>
  * 企业大屏数据统计 服务类
@@ -22,6 +24,19 @@ public interface BscEnterpriseScreenService extends CrudService<BscEnterpriseScr
      */
     Object screenDataStatistic(String dataType, String moduleType);
 
+    /**
+     * 定时任务逻辑
+     */
+    void dataSynchro();
+
+    /**
+     * 查询该单位企业大屏数据是否统计
+     *
+     * @param companyId 单位ID
+     * @return
+     */
+    List<BscEnterpriseScreen> bscEnterpriseScreenCount(String companyId);
+
     /**
      * 大屏值班查岗JSON数据查询
      *
@@ -61,4 +76,12 @@ public interface BscEnterpriseScreenService extends CrudService<BscEnterpriseScr
      * @return
      */
     Object buildScoreStatistics(String companyId);
+
+    /**
+     * 大屏自主巡检JSON数据查询
+     *
+     * @param companyId 单位ID
+     * @return
+     */
+    Object patrolInspectionStatistics(String companyId);
 }

+ 9 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemBuildScoreRecordService.java

@@ -33,6 +33,15 @@ public interface DemBuildScoreRecordService extends CrudService<DemBuildScoreRec
      */
     List<DemBuildScoreRecord> demBuildScoreRecordList(String companyId, String scoreDate);
 
+    /**
+     * 查询建筑评分记录列表
+     *
+     * @param scoreDate 时间(年-月)
+     * @param companyId 单位ID
+     * @return
+     */
+    List<DemBuildScoreRecord> demBuildScoreRecordListOne(String scoreDate, String companyId);
+
     /**
      * 查询建筑评分记录新增
      *

+ 10 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyServiceImpl.java

@@ -44,10 +44,19 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
         LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(BaseCompany::getCompanyId, BaseCompany::getCompanyName)
                 .in(BaseCompany::getCompanyId, companyIdList)
-                .eq(BaseCompany::getEnable, 0)
+                .eq(BaseCompany::getEnable, 1)
                 .orderByDesc(BaseCompany::getId);
         List<BaseCompany> list = this.list(queryWrapper);
         return list;
     }
 
+    @Override
+    public List<BaseCompany> companyIdList(){
+        LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BaseCompany::getCompanyId)
+                .eq(BaseCompany::getEnable, 1);
+        List<BaseCompany> list = this.list(queryWrapper);
+        return list;
+    }
+
 }

+ 115 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseScreenServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usky.fire.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.Arith;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BaseCompany;
 import com.usky.fire.domain.BscEnterpriseScreen;
 import com.usky.fire.domain.DemBuildScore;
 import com.usky.fire.domain.DemBuildScoreRecord;
@@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.*;
 
 /**
@@ -61,6 +64,9 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
     @Autowired
     private PatrolInspectionPlanSiteSonMapper patrolInspectionPlanSiteSonMapper;
 
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
     @Override
     public Object screenDataStatistic(String dataType, String moduleType) {
         String companyId = baseUserCompanyService.companyId();
@@ -120,11 +126,72 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
         return disparateData;
     }
 
-
+    @Override
     public void dataSynchro() {
+        List<BaseCompany> baseCompanies = baseCompanyService.companyIdList();
+        if (CollectionUtils.isNotEmpty(baseCompanies)) {
+            for (int i = 0; i < baseCompanies.size(); i++) {
+                Object postInspectStatistics = this.postInspectStatistics(baseCompanies.get(i).getCompanyId());
+                Object fireAlarmStatistics = this.fireAlarmStatistics(baseCompanies.get(i).getCompanyId());
+                Object reservePlanStatistics = this.reservePlanStatistics(baseCompanies.get(i).getCompanyId());
+                Object hiddenDangerStatistics = this.hiddenDangerStatistics(baseCompanies.get(i).getCompanyId());
+                Object buildScoreStatistics = this.buildScoreStatistics(baseCompanies.get(i).getCompanyId());
+                Object patrolInspectionStatistics = this.patrolInspectionStatistics(baseCompanies.get(i).getCompanyId());
+                List<BscEnterpriseScreen> list = this.bscEnterpriseScreenCount(baseCompanies.get(i).getCompanyId());
+                BscEnterpriseScreen bscEnterpriseScreen = new BscEnterpriseScreen();
+                bscEnterpriseScreen.setCompanyId(baseCompanies.get(i).getCompanyId());
+                bscEnterpriseScreen.setCreateTime(LocalDateTime.now());
+                bscEnterpriseScreen.setPatrolInspection(JSON.toJSONString(postInspectStatistics));
+                bscEnterpriseScreen.setPostInspect(JSON.toJSONString(patrolInspectionStatistics));
+                bscEnterpriseScreen.setFireAlarm(JSON.toJSONString(fireAlarmStatistics));
+                bscEnterpriseScreen.setReservePlan(JSON.toJSONString(reservePlanStatistics));
+                bscEnterpriseScreen.setHiddenDanger(JSON.toJSONString(hiddenDangerStatistics));
+                bscEnterpriseScreen.setBuildScore(JSON.toJSONString(buildScoreStatistics));
+                if (CollectionUtils.isNotEmpty(list)) {
+                    bscEnterpriseScreen.setId(list.get(0).getId());
+                    this.updateById(bscEnterpriseScreen);
+                } else {
+                    this.save(bscEnterpriseScreen);
+                }
+            }
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
+            long timeStamp = OnlineMethod.getLastPeroid(2, new Date());
+            String scoreDate = format.format(timeStamp);
+            List<DemBuildScoreRecord> list1 = demBuildScoreRecordService.demBuildScoreRecordListOne(scoreDate, null);
+            for (int i = 0; i < list1.size(); i++) {
+                int count = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, null, null);
+                int overstepCount = demBuildScoreRecordService.demBuildScoreRecordCount(scoreDate, list1.get(i).getBuildScore(), null);
+                double faultRatio1 = Arith.div(overstepCount, count, 2) * 100;
+                int faultRatio = new Double(faultRatio1).intValue();
+                int rank = count - overstepCount;
+                List<BscEnterpriseScreen> enterpriseScreensList = this.bscEnterpriseScreenCount(list1.get(i).getCompanyId());
+                if (CollectionUtils.isNotEmpty(enterpriseScreensList)) {
+                    Map<String, Object> map1 = new HashMap<>();
+                    map1.put("value", rank);
+                    Map<String, Object> map2 = new HashMap<>();
+                    map2.put("value", faultRatio);
+                    JSONObject buildScore = JSONObject.parseObject(enterpriseScreensList.get(0).getBuildScore());
+                    buildScore.put("data3", map1);
+                    buildScore.put("data4", map2);
+                    BscEnterpriseScreen bscEnterpriseScreen = new BscEnterpriseScreen();
+                    bscEnterpriseScreen.setId(enterpriseScreensList.get(0).getId());
+                    bscEnterpriseScreen.setBuildScore(JSON.toJSONString(buildScore));
+                    this.updateById(bscEnterpriseScreen);
+                }
+            }
+        }
+    }
 
+    @Override
+    public List<BscEnterpriseScreen> bscEnterpriseScreenCount(String companyId) {
+        LambdaQueryWrapper<BscEnterpriseScreen> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BscEnterpriseScreen::getId, BscEnterpriseScreen::getBuildScore)
+                .eq(BscEnterpriseScreen::getCompanyId, companyId);
+        List<BscEnterpriseScreen> list = this.list(queryWrapper);
+        return list;
     }
 
+
     @Override
     public Object postInspectStatistics(String companyId) {
         int uncharCount = postInspectService.postInspectCount(companyId, 0);
@@ -502,6 +569,7 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
         return map2;
     }
 
+    @Override
     public Object patrolInspectionStatistics(String companyId) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         String sameDay = format.format(new Date());
@@ -517,10 +585,12 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
                 startTime = sameDay;
                 endTime = sameDay;
             } else if (i == 1) {
-                startTime = sameDay;
+                long timeStamp = OnlineMethod.getLastPeroid(1, new Date());
+                startTime = format.format(timeStamp);
                 endTime = sameDay;
             } else if (i == 2) {
-                startTime = sameDay;
+                long timeStamp = OnlineMethod.getLastPeroid(2, new Date());
+                startTime = format.format(timeStamp);
                 endTime = sameDay;
             }
             qualifiedCount = patrolInspectionPlanSiteSonMapper.planSonSiteCout(startTime, endTime, 2);
@@ -536,7 +606,48 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
                 seriesDataList3.add(undetectedCount);
             }
         }
-        return null;
+        List<String> categories = new ArrayList<>();
+        categories.add("合格数");
+        categories.add("漏检数");
+
+        List<Object> series = new ArrayList<>();
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("name", "数据");
+        map1.put("data", seriesDataList1);
+        series.add(map1);
+        Map<String, Object> data1Data = new HashMap<>();
+        data1Data.put("categories", categories);
+        data1Data.put("series", series);
+        Map<String, Object> map4 = new HashMap<>();
+        map4.put("data", data1Data);
+
+        List<Object> series1 = new ArrayList<>();
+        Map<String, Object> map2 = new HashMap<>();
+        map2.put("name", "数据");
+        map2.put("data", seriesDataList2);
+        series1.add(map2);
+        Map<String, Object> data2Data = new HashMap<>();
+        data2Data.put("categories", categories);
+        data2Data.put("series", series1);
+        Map<String, Object> map5 = new HashMap<>();
+        map5.put("data", data2Data);
+
+        List<Object> series2 = new ArrayList<>();
+        Map<String, Object> map3 = new HashMap<>();
+        map3.put("name", "数据");
+        map3.put("data", seriesDataList3);
+        series2.add(map3);
+        Map<String, Object> data3Data = new HashMap<>();
+        data3Data.put("categories", categories);
+        data3Data.put("series", series2);
+        Map<String, Object> map6 = new HashMap<>();
+        map6.put("data", data3Data);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("data1", map4);
+        map.put("data2", map5);
+        map.put("data3", map6);
+        return map;
     }
 
 }

+ 9 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemBuildScoreRecordServiceImpl.java

@@ -44,6 +44,15 @@ public class DemBuildScoreRecordServiceImpl extends AbstractCrudService<DemBuild
         return list;
     }
 
+    @Override
+    public List<DemBuildScoreRecord> demBuildScoreRecordListOne(String scoreDate,String companyId){
+        LambdaQueryWrapper<DemBuildScoreRecord> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(scoreDate),DemBuildScoreRecord::getScoreDate,scoreDate)
+                .eq(StringUtils.isNotBlank(companyId),DemBuildScoreRecord::getCompanyId,companyId);
+        List<DemBuildScoreRecord> list = this.list(queryWrapper);
+        return list;
+    }
+
     @Override
     public void demBuildScoreRecordAdd(DemBuildScoreRecord demBuildScoreRecord) {
         demBuildScoreRecord.setCreateTime(LocalDateTime.now());

+ 60 - 9
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -18,16 +18,66 @@ import java.util.regex.Pattern;
 
 public class OnlineMethod {
 
+    /**
+     * 获取过去时间点
+     * @param type
+     * @return
+     */
+    public static long getLastPeroid(int type, Date date){
+//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String day = format.format(Date);
+        Calendar c = Calendar.getInstance();
+        if (0 == type){
+            //过去1天
+            c.setTime(date);
+            c.add(Calendar.DATE, -1);
+            Date d = c.getTime();
+            return d.getTime();
+        }else if (1 == type){
+            //过去7天
+            c.setTime(date);
+            c.add(Calendar.DATE, -7);
+            Date d = c.getTime();
+            return d.getTime();
+        }else if (2 == type){
+            //过去一月
+            c.setTime(date);
+            c.add(Calendar.MONTH, -1);
+            Date m = c.getTime();
+            return m.getTime();
+        }else if (3 == type){
+            //过去一年
+            c.setTime(date);
+            c.add(Calendar.YEAR, -1);
+            Date y = c.getTime();
+            return y.getTime();
+        }else if (4 == type){
+            //过去二十年
+            c.setTime(date);
+            c.add(Calendar.YEAR, -20);
+            Date y = c.getTime();
+            return y.getTime();
+        }
+        //过去1天
+        c.setTime(date);
+        c.add(Calendar.DATE, -1);
+        Date d = c.getTime();
+
+        return d.getTime();
+    }
+
+
 
     /**
      * 获取当前月的上一个月
+     *
      * @return
      */
     public static String getLastMonth(Date date) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date); // 设置为当前时间
-        calendar.add(Calendar.MONTH,-1);
+        calendar.add(Calendar.MONTH, -1);
         date = calendar.getTime();
         String accDate = format.format(date);
         return accDate;
@@ -392,14 +442,15 @@ public class OnlineMethod {
         return (int) between;
     }
 
-    /*java获取指定日期的前几天或后几天
-      @param datestr指定日期
-      * @param format 日期格式
-      * * @param flag true为获取后几天, false:为获取前几天
-      * *@param day指定需要获取的天数
-      * *
-      *  @returr
-      * */
+    /**
+     * java获取指定日期的前几天或后几天
+     *
+     * @param dateStr 指定日期
+     * @param format  日期格式
+     * @param flag    true为获取后几天, false:为获取前几天
+     * @param day     指定需要获取的天数
+     * @returr
+     */
     public static LocalDate getDate(String dateStr, String format, boolean flag, int day) {
         Calendar c = Calendar.getInstance();
         Date date = null;

+ 0 - 3
service-fire/service-fire-biz/src/main/resources/mapper/fire/PatrolInspectionPlanSiteSonMapper.xml

@@ -26,10 +26,7 @@
             <if test="inspectionStatus != null and inspectionStatus!=0">
                 AND pipss.inspection_status = #{inspectionStatus}
             </if>
-
         </where>
-        GROUP BY
-        alarmTime
     </select>
 
 </mapper>