jiazx0107@163.com
2023-11-06 69cd9f59a0fabf12f8c9147fcba7f69817a870b3
igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java
@@ -1,30 +1,27 @@
package com.ld.igds.timer;
import com.bstek.bdf2.core.model.DefaultCompany;
import com.ld.igds.camera.ApiCameraManager;
import com.ld.igds.camera.CameraUtil;
import com.ld.igds.camera.data.ApiCameraResp;
import com.ld.igds.camera.data.ApiSnapReq;
import com.ld.igds.common.CoreCommonService;
import com.ld.igds.data.ConfigData;
import com.ld.igds.file.CoreFileService;
import com.ld.igds.models.SecCamera;
import com.ld.igds.models.SecSnapConf;
import com.ld.igds.models.SecSnapDepot;
import com.ld.igds.models.SnapSer;
import com.ld.igds.sec.service.CoreSecCameraService;
import com.ld.igds.sec.service.SecSnapService;
import com.ld.igds.sec.service.SecurityService;
import com.ld.igds.sec.service.SecSnapDepotService;
import com.ld.igds.util.ContextUtil;
import com.ld.igds.util.DateUtil;
import com.ld.igds.view.manager.TempManager;
import com.ld.igds.view.service.SnapSerService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -42,7 +39,7 @@
    @Resource
    private ConfigData configData;
    @Resource
    private SecSnapService secSnapService;
   private SecSnapDepotService secSnapService;
    @Resource
    private CoreSecCameraService coreSecCameraService;
    @Resource
@@ -53,43 +50,55 @@
    private ApiCameraManager apiCameraManager;
    /**
     * 每间隔30分钟执行一次
    * 从6-18点开始执行
     */
    @Scheduled(cron = "0 0/30 * * * ?")
   @Scheduled(cron = "0 0 6,7,8,9,10,11,12,13,14,15,16,17,18 * * ? ")
    public void scheduled30() {
      Date exeDate = new Date();
        //执行抓拍判断
        doExeSnap(new Date());
      doExeSnap(exeDate);
    }
    /**
     * 定时执行抓拍
     */
    private void doExeSnap(Date date) {
      try {
         // 获取所有配置抓拍摄像头
         List<SecSnapConf> list = secSnapService.listSnapConf(
               configData.getDefaultCompanyId(), null);
        if (configData.getSnapTime() < 0) return;
         if (null == list || list.isEmpty()) {
            return;
         }
         SecSnapConf exeConf = list.get(0);
         // 获取抓拍时间
         int exeHour1 = exeConf.getActHour1();
         int exeHour2 = exeConf.getActHour2();
         int exeHour3 = exeConf.getActHour3();
         if (exeHour1 == 0 && exeHour1 == 0 && exeHour1 == 0)
            return;
        //获取当前系统时间
        int curHour = DateUtil.getHour(date);
        if (curHour != configData.getSnapTime()) return;
         if(curHour != exeHour1 && curHour != exeHour2 && curHour !=exeHour3){
            return;
         }
        log.info("===================系统执行定时仓内视频抓拍==================");
        try {
            List<SecSnapConf> list = secSnapService.listSnapConf(configData.getDefaultCompanyId(), null);
            if (null == list || list.isEmpty()) return;
            SecCamera secCamera;
            Map<String, SnapSer> snapSerMap = new HashMap<>();
            SnapSer snapSer;
            for (SecSnapConf snapConf : list) {
                if (null == snapConf.getDepotId()) continue;
                secCamera = coreSecCameraService.getCameraById(snapConf.getCompanyId(), snapConf.getCameraId());
            secCamera = coreSecCameraService.getCameraById(
                  snapConf.getCompanyId(), snapConf.getCameraId());
                if (null == secCamera) continue;
@@ -124,15 +133,17 @@
        req.setCameraName(secCamera.getName());
        req.setBizId(null);
        req.setMediaAddr(CameraUtil.updateMediaAddr(secCamera.getMediaAddr(), secCamera.getLoginId(),
                secCamera.getPwd(), secCamera.getIpIn(), secCamera.getPortInC(), secCamera.getChanNum()));
      req.setMediaAddr(CameraUtil.updateMediaAddr(secCamera.getMediaAddr(),
            secCamera.getLoginId(), secCamera.getPwd(),
            secCamera.getIpIn(), secCamera.getPortInC(),
            secCamera.getChanNum()));
        String filePath = fileService.getSnapFilePath(new Date());
        req.setFilePath(filePath);
        //调整附件名称,避免出现中文
        String fileName = snapConf.getDepotId() + "_" + ContextUtil.getTimeId(1000) + ".jpg";
      String fileName = snapConf.getDeptId() + "_" + ContextUtil.getTimeId(1000) + ".jpg";
        req.setFileName(fileName);
        //执行抓拍