From 4dc585d5bf2fd0a01602aba0d9fa25adbaf4a7fb Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期一, 18 九月 2023 18:45:03 +0800
Subject: [PATCH] 提交仓内抓拍和后台配置

---
 igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java               |  233 +++++++------
 igds-basic/src/main/java/com/ld/igds/timer/ScheduledBasic.java                       |   62 +++
 igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java             |    3 
 igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java              |   62 +++
 igds-security/src/main/java/com/ld/igds/sec/controller/FireController.java           |    2 
 igds-core/src/main/java/com/ld/igds/data/ConfigData.java                             |    6 
 igds-core/src/main/java/com/ld/igds/camera/data/ApiCameraResp.java                   |    2 
 igds-security/src/main/java/com/ld/igds/sec/controller/PatrolController.java         |    2 
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java     |   22 -
 igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java |    2 
 igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml               |  149 +++++++++
 igds-security/src/main/java/com/ld/igds/timer/JobLampService.java                    |    6 
 igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java                      |  145 +++++++++
 /dev/null                                                                            |   56 ---
 igds-core/src/main/java/com/ld/igds/file/CoreFileService.java                        |   10 
 igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java                      |   44 ++
 igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java                     |   63 +++
 igds-web/src/main/resources/application.yml                                          |    4 
 igds-basic/src/main/java/com/ld/igds/timer/WeatherTimerService.java                  |   61 +-
 igds-web/src/main/java/com/ld/igds/TestAction.java                                   |    8 
 20 files changed, 710 insertions(+), 232 deletions(-)

diff --git a/igds-basic/src/main/java/com/ld/igds/timer/ScheduledBasic.java b/igds-basic/src/main/java/com/ld/igds/timer/ScheduledBasic.java
new file mode 100644
index 0000000..7b36a45
--- /dev/null
+++ b/igds-basic/src/main/java/com/ld/igds/timer/ScheduledBasic.java
@@ -0,0 +1,62 @@
+package com.ld.igds.timer;
+
+import com.bstek.bdf2.core.model.DefaultCompany;
+import com.ld.igds.common.CoreCommonService;
+import com.ld.igds.view.manager.TempManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 鍩虹妯″潡鏍囧噯瀹氭椂鍣ㄤ笟鍔¢厤缃�
+ */
+@Slf4j
+@Component(ScheduledBasic.BEAN_ID)
+public class ScheduledBasic {
+
+    public static final String BEAN_ID = "basic.scheduled";
+
+    @Resource
+    private TempManager thManager;
+    @Resource
+    private CoreCommonService coreCommonService;
+
+    @Resource
+    private WeatherTimerService weatherTimerService;
+
+
+    /**
+     * 姣忛棿闅�30鍒嗛挓鎵ц涓�娆�
+     */
+    @Scheduled(cron = "0 0/30 * * * ?")
+    public void scheduled30() {
+
+        //瀹氭椂鑾峰彇鍒嗘満鐨勬俯婀垮害妫�娴嬬粨鏋�
+        doExeTh();
+
+        //瀹氭椂鑾峰彇姘旇薄淇℃伅
+        weatherTimerService.doExe();
+    }
+
+    /**
+     * 瀹氭椂鑾峰彇鍒嗘満鐨勬俯婀垮害妫�娴嬬粨鏋�
+     */
+    private void doExeTh() {
+        List<DefaultCompany> list = coreCommonService.getCompanyList();
+        if (null == list || list.isEmpty()) return;
+
+        try {
+            for (DefaultCompany company : list) {
+                log.info("===================绯荤粺瀹氭椂鑾峰彇鍒嗘満涓嬬殑娓╂箍搴︿俊鎭�-{}=======================", company.getId());
+                thManager.scheduledCheck(company.getId());
+
+                Thread.sleep(500);
+            }
+        } catch (Exception e) {
+            e.getStackTrace();
+        }
+    }
+}
diff --git a/igds-basic/src/main/java/com/ld/igds/timer/ThScheduled.java b/igds-basic/src/main/java/com/ld/igds/timer/ThScheduled.java
deleted file mode 100644
index 19f78e6..0000000
--- a/igds-basic/src/main/java/com/ld/igds/timer/ThScheduled.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.ld.igds.timer;
-
-import com.bstek.bdf2.core.model.DefaultCompany;
-import com.ld.igds.common.CoreCommonService;
-import com.ld.igds.view.manager.TempManager;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * 绮儏绠$悊妯″潡鐨勫畾鏃跺櫒閰嶇疆锛�
- * 1銆佹瘡闂撮殧1涓皬鏃惰幏鍙栦笅鎵�鏈夊垎鏈洪厤缃殑娓╂箍搴︿俊鎭�
- */
-@Slf4j
-@Component(ThScheduled.BEAN_ID)
-public class ThScheduled {
-
-    public static final String BEAN_ID = "basic.grainScheduled";
-
-    @Resource
-    private TempManager thManager;
-
-    @Resource
-    private CoreCommonService coreCommonService;
-
-
-    /**
-     * 姣忓皬鏃舵墽琛屼竴娆★紝鎵ц鏃堕棿涓烘瘡涓皬鏃剁殑绗竴绉�
-     * 2022骞�6鏈�27鏃� 11:05:31 淇敼涓�20 鍒嗛挓鎵ц涓�娆�
-     */
-    @Scheduled(cron = "0 0/20 * * * ?")
-    public void scheduled() {
-        List<DefaultCompany> list = coreCommonService.getCompanyList();
-        if (null == list || list.isEmpty()) return;
-
-        for (DefaultCompany company : list) {
-            doExe(company.getId());
-            try {
-                Thread.sleep(500);
-            } catch (Exception e) {
-                e.getStackTrace();
-            }
-        }
-
-    }
-
-
-    public void doExe(String companyId) {
-        log.info("===================绯荤粺瀹氭椂鑾峰彇鍒嗘満涓嬬殑娓╂箍搴︿俊鎭�-{}=======================", companyId);
-        thManager.scheduledCheck(companyId);
-    }
-}
diff --git a/igds-basic/src/main/java/com/ld/igds/timer/WeatherScheduled.java b/igds-basic/src/main/java/com/ld/igds/timer/WeatherTimerService.java
similarity index 87%
rename from igds-basic/src/main/java/com/ld/igds/timer/WeatherScheduled.java
rename to igds-basic/src/main/java/com/ld/igds/timer/WeatherTimerService.java
index 64d944c..44b2ce3 100644
--- a/igds-basic/src/main/java/com/ld/igds/timer/WeatherScheduled.java
+++ b/igds-basic/src/main/java/com/ld/igds/timer/WeatherTimerService.java
@@ -24,9 +24,9 @@
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.converter.StringHttpMessageConverter;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
+
 import javax.annotation.Resource;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
@@ -46,7 +46,7 @@
  */
 @Slf4j
 @Component
-public class WeatherScheduled {
+public class WeatherTimerService {
 
     @Resource(name = NotifyWeatherService.BEAN_ID)
     private NotifyWeatherService notifyService;
@@ -74,8 +74,7 @@
     /**
      * 瀹氭椂鑾峰彇姘旇薄淇℃伅锛岃娉ㄦ剰锛岀敱浜庢皵璞℃敮鎸佸缃戝拰鑷畾涔夋皵璞$珯锛岀郴缁熼粯璁ゅ彧鎵ц鍏朵腑涓�绉嶆柟寮�
      */
-    @Scheduled(cron = "0 0/30 * * * ?")
-    public void scheduled() {
+    public void doExe() {
 
         log.info("===========================绯荤粺瀹氭椂鑾疯幏鍙栨皵璞′俊鎭�======================");
 
@@ -179,9 +178,9 @@
     private void getWeatherByRkV30(Date date, WeatherConf conf) {
 
         //鑻ョ敤鎴枫�佸瘑鐮併�両P鍦板潃鏈変竴涓虹┖鍒欒繑鍥�
-        if(StringUtils.isEmpty(conf.getAccount())
+        if (StringUtils.isEmpty(conf.getAccount())
                 || StringUtils.isEmpty(conf.getPassword())
-                || StringUtils.isEmpty(conf.getIp())){
+                || StringUtils.isEmpty(conf.getIp())) {
             return;
         }
 
@@ -199,15 +198,15 @@
         String body = ans.getBody();
         log.debug("-----褰撳墠寤哄ぇ浠佺骞冲彴鑾峰彇姘旇薄淇℃伅-----锛岃繑鍥炴暟鎹�={}", body);
         RkResult response = JSONObject.parseObject(body, RkResult.class);
-        if(StringUtils.isEmpty(response.getCode()) || !"1000".equals(response.getCode())){
+        if (StringUtils.isEmpty(response.getCode()) || !"1000".equals(response.getCode())) {
             log.error("褰撳墠寤哄ぇ浠佺骞冲彴鑾峰彇姘旇薄淇℃伅澶辫触......");
             return;
         }
         List<JSONObject> result = JSON.parseArray(JSONObject.toJSONString(response.getData()), JSONObject.class);
 
-        JSONArray lists = (JSONArray)result.get(0).get("dataItem");
+        JSONArray lists = (JSONArray) result.get(0).get("dataItem");
         List<RkDto> list = JSON.parseArray(JSONObject.toJSONString(lists), RkDto.class);
-        if(null == list || list.isEmpty()){
+        if (null == list || list.isEmpty()) {
             return;
         }
         WeatherInfo info = new WeatherInfo();
@@ -221,55 +220,55 @@
         //鏍规嵁鍦板潃鍒ゆ柇閫夐」
         for (RkDto rkDto : list) {
             //娓╂箍搴�
-            if("11".equals(rkDto.getNodeId())){
+            if ("11".equals(rkDto.getNodeId())) {
                 dataList = rkDto.getRegisterItem();
                 for (RkData rkData : dataList) {
                     //娓╁害
-                    if("1".equals(rkData.getRegisterId())){
+                    if ("1".equals(rkData.getRegisterId())) {
                         info.setTemp(rkData.getData());
                     }
                     //婀垮害
-                    if("2".equals(rkData.getRegisterId())){
+                    if ("2".equals(rkData.getRegisterId())) {
                         info.setHumidity(rkData.getData());
                     }
                 }
             }
             //椋庡姏椋庨��
-            if("1".equals(rkDto.getNodeId())){
+            if ("1".equals(rkDto.getNodeId())) {
                 dataList = rkDto.getRegisterItem();
                 for (RkData rkData : dataList) {
                     //椋庡姏
-                    if("1".equals(rkData.getRegisterId())){
+                    if ("1".equals(rkData.getRegisterId())) {
                         info.setWindSpeed(rkData.getData() + "绾�");
                     }
                     //椋庨��
-                    if("2".equals(rkData.getRegisterId())){
+                    if ("2".equals(rkData.getRegisterId())) {
                         info.setWindMeter(rkData.getData());
                     }
                 }
             }
             //椋庡悜
-            if("2".equals(rkDto.getNodeId())){
+            if ("2".equals(rkDto.getNodeId())) {
                 dataList = rkDto.getRegisterItem();
                 for (RkData rkData : dataList) {
                     //椋庡悜
-                    if("1".equals(rkData.getRegisterId())){
+                    if ("1".equals(rkData.getRegisterId())) {
                         info.setWindDirection(rkData.getData());
                     }
                 }
             }
             //澶ф皵鍘�
-            if("14".equals(rkDto.getNodeId())){
+            if ("14".equals(rkDto.getNodeId())) {
                 dataList = rkDto.getRegisterItem();
                 for (RkData rkData : dataList) {
                     //澶ф皵鍘�
-                    if("2".equals(rkData.getRegisterId())){
+                    if ("2".equals(rkData.getRegisterId())) {
                         info.setPressure(rkData.getData());
                     }
                 }
             }
             //闆ㄩ噺
-            if("21".equals(rkDto.getNodeId())){
+            if ("21".equals(rkDto.getNodeId())) {
                 dataList = rkDto.getRegisterItem();
                 for (RkData rkData : dataList) {
 //                    //鐬椂闆ㄩ噺
@@ -277,33 +276,33 @@
 //                        info.setRainfall(rkData.getData());
 //                    }
                     //褰撳墠闆ㄩ噺
-                    if("2".equals(rkData.getRegisterId())){
+                    if ("2".equals(rkData.getRegisterId())) {
                         info.setRainfall(rkData.getData());
                     }
                 }
             }
             //鏈夋棤闆ㄩ洩
-            if("16".equals(rkDto.getNodeId())){
+            if ("16".equals(rkDto.getNodeId())) {
                 weatherList = rkDto.getRegisterItem();
             }
         }
         for (RkData rkData : weatherList) {
             //澶╂皵
-            if("1".equals(rkData.getRegisterId())){
+            if ("1".equals(rkData.getRegisterId())) {
                 info.setWeather(rkData.getData());
                 //鏈夐洦闆椂鍒ゆ柇褰撳墠闆ㄩ噺
-                if("鏈夐洦闆�".equals(rkData.getData())){
+                if ("鏈夐洦闆�".equals(rkData.getData())) {
                     Double rainfall = Double.valueOf(info.getRainfall());
-                    if(rainfall <= 10){
+                    if (rainfall <= 10) {
                         info.setWeather("灏忛洦");
                     }
-                    if(rainfall > 10 && rainfall <= 25){
+                    if (rainfall > 10 && rainfall <= 25) {
                         info.setWeather("涓洦");
                     }
-                    if(rainfall > 25 && rainfall <= 50){
+                    if (rainfall > 25 && rainfall <= 50) {
                         info.setWeather("澶ч洦");
                     }
-                    if(rainfall > 50){
+                    if (rainfall > 50) {
                         info.setWeather("鏆撮洦");
                     }
                 }
@@ -316,6 +315,7 @@
 
     /**
      * 鑾峰彇韬唤璁よ瘉鐨勬巿鏉僡ccessToken
+     *
      * @param conf
      * @return
      */
@@ -334,7 +334,7 @@
             }
             log.info("鑾峰彇鐨勮韩浠借璇佷俊鎭�={}", response);
 
-            if(StringUtils.isEmpty(response.getCode()) || !"1000".equals(response.getCode())){
+            if (StringUtils.isEmpty(response.getCode()) || !"1000".equals(response.getCode())) {
                 log.error("褰撳墠寤哄ぇ浠佺骞冲彴鑾峰彇韬唤璁よ瘉淇℃伅澶辫触......");
                 return null;
             }
@@ -345,9 +345,10 @@
             token = (String) result.get("token");
 
             //灏唗oken瀛樺叆缂撳瓨,
-            redisUtil.set(key, token, 2*60*60);
+            redisUtil.set(key, token, 2 * 60 * 60);
         }
         return token;
     }
 
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/camera/data/ApiCameraResp.java b/igds-core/src/main/java/com/ld/igds/camera/data/ApiCameraResp.java
index ee2bad9..87ea49c 100644
--- a/igds-core/src/main/java/com/ld/igds/camera/data/ApiCameraResp.java
+++ b/igds-core/src/main/java/com/ld/igds/camera/data/ApiCameraResp.java
@@ -13,6 +13,8 @@
 
     private String msg;
 
+    private String fileName;
+
     /**
      * 鎾斁鍦板潃
      */
diff --git a/igds-core/src/main/java/com/ld/igds/data/ConfigData.java b/igds-core/src/main/java/com/ld/igds/data/ConfigData.java
index 8d6318b..fbf9556 100644
--- a/igds-core/src/main/java/com/ld/igds/data/ConfigData.java
+++ b/igds-core/src/main/java/com/ld/igds/data/ConfigData.java
@@ -36,4 +36,10 @@
     @Value("${igds.weather-path}")
     private String weatherPath;
 
+    /**
+     * 鎶撴媿鏃堕棿閰嶇疆
+     */
+    @Value("${igds.snap-time}")
+    private int snapTime = -1;
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/file/CoreFileService.java b/igds-core/src/main/java/com/ld/igds/file/CoreFileService.java
index 15d5fb1..89be5d4 100644
--- a/igds-core/src/main/java/com/ld/igds/file/CoreFileService.java
+++ b/igds-core/src/main/java/com/ld/igds/file/CoreFileService.java
@@ -39,6 +39,16 @@
      */
     public String getInoutFilePath(Date date);
 
+
+    /**
+     * 鏍规嵁鏃堕棿鑾峰彇绯荤粺閰嶇疆鐨勪粨鍐呰棰戞姄鎷嶈矾寰�
+     * 绯荤粺闄勪欢璺緞浠yyyMM涓虹洰褰曡繘琛屽垝鍒�
+     *
+     * @param date
+     * @return
+     */
+    public String getSnapFilePath(Date date);
+
     /**
      * 鏍规嵁鏃堕棿鑾峰彇绯荤粺閰嶇疆鐨勯檮浠惰矾寰勫湴鍧�
      * 绯荤粺闄勪欢璺緞浠yyyMM涓虹洰褰曡繘琛屽垝鍒�
diff --git a/igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java b/igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java
index 802235a..b8394e4 100644
--- a/igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java
+++ b/igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java
@@ -21,138 +21,149 @@
 @Component
 public class CoreFileServiceImpl implements CoreFileService {
 
-	@Autowired
-	private FileServiceMapper fileServiceMapper;
+    @Autowired
+    private FileServiceMapper fileServiceMapper;
 
-	@Autowired
-	private ConfigData configData;
+    @Autowired
+    private ConfigData configData;
 
-	@Override
-	public String getInoutFilePath(Date date) {
-		if (null == date) date = new Date();
-		String basePath = configData.getFilePath() + "INOUT/" + DateFormatUtils.format(date, "yyyyMM") + "/";
-		File file = new File(basePath);
-		if (!file.exists()) {
-			file.mkdirs();
-		}
-		return basePath;
-	}
+    @Override
+    public String getInoutFilePath(Date date) {
+        if (null == date) date = new Date();
+        String basePath = configData.getFilePath() + "INOUT/" + DateFormatUtils.format(date, "yyyyMM") + "/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
 
-	@Override
-	public String getCommonFilePath(Date date) {
-		if (null == date)
-			date = new Date();
+    @Override
+    public String getSnapFilePath(Date date) {
+        if (null == date) date = new Date();
+        String basePath = configData.getFilePath() + "SNAP/" + DateFormatUtils.format(date, "yyyyMM") + "/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
 
-		String basePath = configData.getFilePath() + "COMMON/" + DateFormatUtils.format(date, "yyyyMM") + "/";
+    @Override
+    public String getCommonFilePath(Date date) {
+        if (null == date)
+            date = new Date();
 
-		File file = new File(basePath);
-		if (!file.exists()) {
-			file.mkdirs();
-		}
-		return basePath;
-	}
+        String basePath = configData.getFilePath() + "COMMON/" + DateFormatUtils.format(date, "yyyyMM") + "/";
 
-	@Override
-	public String getTempFilePath() {
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
 
-		String basePath = configData.getFilePath() + "TEMP/";
-		File file = new File(basePath);
-		if (!file.exists()) {
-			file.mkdirs();
-		}
-		return basePath;
-	}
+    @Override
+    public String getTempFilePath() {
 
-	@Override
-	public void baseImg2Disk(String basePath, String fileName, String imgData) {
-		Base64Util.generateImage(imgData, basePath + fileName);
-	}
+        String basePath = configData.getFilePath() + "TEMP/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
 
-	@Override
-	public void addRecord(FileData fileData) {
-		fileServiceMapper.addFile(fileData);
-	}
+    @Override
+    public void baseImg2Disk(String basePath, String fileName, String imgData) {
+        Base64Util.generateImage(imgData, basePath + fileName);
+    }
 
-	@Override
-	public void saveInoutFiles(List<FileData> files, String companyId,
-			String bizId, String bizTag) throws Exception, SQLException {
+    @Override
+    public void addRecord(FileData fileData) {
+        fileServiceMapper.addFile(fileData);
+    }
 
-		if (null == files || files.size() == 0) return;
+    @Override
+    public void saveInoutFiles(List<FileData> files, String companyId,
+                               String bizId, String bizTag) throws Exception, SQLException {
 
-		for (FileData data : files) {
-			// 濡傛灉娌℃湁闄勪欢鍚嶇О锛屽垯涓嶄繚瀛橀檮浠朵俊鎭�
-			if (StringUtils.isEmpty(data.getFileName())) {
-				continue;
-			}
-			data.setCreateTime(new Date());
-			data.setBizId(bizId);
-			if(StringUtils.isNotEmpty(bizTag)){
-				data.setBizTag(bizTag);
-			}
-			data.setCompanyId(companyId);
-			data.setFileId(ContextUtil.getUUID());
-			fileServiceMapper.addFile(data);
-		}
-	}
+        if (null == files || files.size() == 0) return;
 
-	@Override
-	public List<FileData> listFile(String companyId, String bizId) {
-		if (StringUtils.isEmpty(companyId)) {
-			companyId = ContextUtil.getDefaultCompanyId();
-		}
+        for (FileData data : files) {
+            // 濡傛灉娌℃湁闄勪欢鍚嶇О锛屽垯涓嶄繚瀛橀檮浠朵俊鎭�
+            if (StringUtils.isEmpty(data.getFileName())) {
+                continue;
+            }
+            data.setCreateTime(new Date());
+            data.setBizId(bizId);
+            if (StringUtils.isNotEmpty(bizTag)) {
+                data.setBizTag(bizTag);
+            }
+            data.setCompanyId(companyId);
+            data.setFileId(ContextUtil.getUUID());
+            fileServiceMapper.addFile(data);
+        }
+    }
 
-		if (StringUtils.isEmpty(bizId))
-			return null;
+    @Override
+    public List<FileData> listFile(String companyId, String bizId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getDefaultCompanyId();
+        }
 
-		List<FileData> listFile = fileServiceMapper.listFile(companyId, bizId);
+        if (StringUtils.isEmpty(bizId))
+            return null;
 
-		if (null == listFile || listFile.isEmpty())
-			return null;
+        List<FileData> listFile = fileServiceMapper.listFile(companyId, bizId);
 
-		return listFile;
-	}
+        if (null == listFile || listFile.isEmpty())
+            return null;
 
-	@Override
-	public void delFile(String fileId) {
-		fileServiceMapper.delFile(fileId);
-	}
+        return listFile;
+    }
+
+    @Override
+    public void delFile(String fileId) {
+        fileServiceMapper.delFile(fileId);
+    }
 
 
-	@Override
-	public void saveFiles(List<FileInfo> files, String bizId, String bizTag) {
-		if (null == files || files.size() == 0){
-			return;
-		}
-		FileData fileData = null;
-		for (FileInfo data : files) {
-			if (StringUtils.isEmpty(data.getFileName())) {
-				continue;
-			}
-			if (StringUtils.isNotEmpty(data.getBizId())) {
-				continue;
-			}
-			if (null == data.getCreateTime()) {
-				data.setCreateTime(new Date());
-			}
-			if (null == data.getBizTag()) {
-				data.setBizTag(bizTag);
-			}
+    @Override
+    public void saveFiles(List<FileInfo> files, String bizId, String bizTag) {
+        if (null == files || files.size() == 0) {
+            return;
+        }
+        FileData fileData = null;
+        for (FileInfo data : files) {
+            if (StringUtils.isEmpty(data.getFileName())) {
+                continue;
+            }
+            if (StringUtils.isNotEmpty(data.getBizId())) {
+                continue;
+            }
+            if (null == data.getCreateTime()) {
+                data.setCreateTime(new Date());
+            }
+            if (null == data.getBizTag()) {
+                data.setBizTag(bizTag);
+            }
 
-			data.setBizId(bizId);
-			data.setCompanyId(ContextUtil.getCompanyId());
+            data.setBizId(bizId);
+            data.setCompanyId(ContextUtil.getCompanyId());
 
-			if (null == data.getFileId()) {
-				data.setFileId(ContextUtil.getUUID());
-			}
+            if (null == data.getFileId()) {
+                data.setFileId(ContextUtil.getUUID());
+            }
 
-			fileData = new FileData();
-			fileData.setFileId(data.getFileId());
-			fileData.setBizId(data.getBizId());
-			fileData.setBizTag(data.getBizTag());
-			fileData.setCompanyId(data.getCompanyId());
-			fileData.setFileName(data.getFileName());
-			fileData.setCreateTime(data.getCreateTime());
-			fileServiceMapper.addFile(fileData);
-		}
-	}
+            fileData = new FileData();
+            fileData.setFileId(data.getFileId());
+            fileData.setBizId(data.getBizId());
+            fileData.setBizTag(data.getBizTag());
+            fileData.setCompanyId(data.getCompanyId());
+            fileData.setFileName(data.getFileName());
+            fileData.setCreateTime(data.getCreateTime());
+            fileServiceMapper.addFile(fileData);
+        }
+    }
 }
diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
index 7732e83..1e0d7f0 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
@@ -126,27 +126,7 @@
     }
 
 
-    /**
-     * @param param
-     * @return
-     */
-//    public String noticeWeightDone(ApiInoutData param) {
-//        //鑾峰彇绉伴噸涓绘帶鍣ㄩ厤缃�
-//        InoutConf conf = getWeightGateway(param.getCompanyId(), param.getDeptId(), param.getSort());
-//
-//        if (null == conf) {
-//            return "绉伴噸涓绘帶鏈厤缃紝鏀寔澶辫触";
-//        }
-//
-//        ApiInoutData apiData = new ApiInoutData(conf);
-//        apiData.setPlateNum(param.getPlateNum());
-//        apiData.setTime(new Date());
-//
-//        ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
-//
-//        // return inoutApiService.noticeWeightDone(apiData); TODO
-//        return null;
-//    }
+
 
     /**
      * 鍑哄叆搴撴姄鎷�
diff --git a/igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java b/igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java
new file mode 100644
index 0000000..bf58aeb
--- /dev/null
+++ b/igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java
@@ -0,0 +1,44 @@
+package com.ld.igds.models;
+
+import com.bstek.dorado.annotation.PropertyDef;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 浠撳唴瑙嗛鎶撴媿閰嶇疆
+ */
+@Data
+@Entity
+@Table(name = "D_SEC_SNAP_CONF")
+public class SecSnapConf {
+
+    @Id
+    @Column(name = "ID_", length = 40)
+    @PropertyDef(label = "涓婚敭")
+    private String id;
+
+    @Column(name = "COMPANY_ID_", length = 10)
+    @PropertyDef(label = "缁勭粐缂栫爜")
+    private String companyId;
+
+    @Column(name = "DEPT_ID_", length = 30)
+    @PropertyDef(label = "鎵�灞炲垎搴�")
+    private String deptId;
+    
+    @Column(name = "DEPOT_ID_", length = 50)
+    @PropertyDef(label = "鎵�灞炰粨搴�")
+    private String depotId;
+
+    @Column(name = "CAMERA_ID_", length = 50)
+    @PropertyDef(label = "鍏宠仈鎽勫儚澶�")
+    private String cameraId;
+
+    @Column(name = "UPDATE_TIME_", length = 1)
+    @PropertyDef(label = "鏇存柊鏃堕棿")
+    private Date updateTime;
+}
diff --git a/igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java b/igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java
new file mode 100644
index 0000000..c15c721
--- /dev/null
+++ b/igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java
@@ -0,0 +1,63 @@
+package com.ld.igds.models;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.bstek.dorado.annotation.PropertyDef;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 浠撳唴瑙嗛鍥惧儚鏁版嵁琛�
+ */
+@Data
+@Entity
+@Table(name = "D_SEC_SNAP_DEPOT")
+public class SecSnapDepot {
+
+    @Id
+    @Column(name = "ID_", length = 40)
+    @PropertyDef(label = "涓婚敭")
+    private String id;
+
+    @Column(name = "COMPANY_ID_", length = 10)
+    @PropertyDef(label = "缁勭粐缂栫爜")
+    private String companyId;
+
+    @Column(name = "DEPT_ID_", length = 30)
+    @PropertyDef(label = "鎵�灞炲垎搴�")
+    private String deptId;
+
+    @Column(name = "DEPOT_ID_", length = 50)
+    @PropertyDef(label = "鎵�灞炰粨搴�")
+    private String depotId;
+
+    @Column(name = "CAMERA_ID_", length = 50)
+    @PropertyDef(label = "鍏宠仈鎽勫儚澶�")
+    private String cameraId;
+    
+    @Column(name = "RESULT_", length = 30)
+    @PropertyDef(label = "鎶撴媿缁撴灉")
+    private String result="SUCCESS";
+
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    @Column(name = "UPDATE_TIME_", length = 1)
+    @PropertyDef(label = "鎶撴媿鏃堕棿")
+    private Date updateTime;
+
+    @Column(name = "FILE_SUFFIX_", length = 6)
+    @PropertyDef(label = "鍥惧儚鏂囦欢鍚庣紑鍚�")
+    private String fileSuffix = "jpg";
+
+    @Column(name = "FILE_NAME_", length = 100)
+    @PropertyDef(label = "鏂囦欢鍚嶇О")
+    private String fileName;
+
+    @Column(name = "PRESET_ ", length = 4)
+    @PropertyDef(label = "棰勭疆浣嶇紪鍙�")
+    private String preset;
+
+}
diff --git a/igds-security/src/main/java/com/ld/igds/sec/controller/FireController.java b/igds-security/src/main/java/com/ld/igds/sec/controller/FireController.java
index 540cec5..fdfd779 100644
--- a/igds-security/src/main/java/com/ld/igds/sec/controller/FireController.java
+++ b/igds-security/src/main/java/com/ld/igds/sec/controller/FireController.java
@@ -8,7 +8,6 @@
 import com.ld.igds.sec.dto.SecurityParam;
 import com.ld.igds.sec.manager.SecManager;
 import com.ld.igds.util.ContextUtil;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -17,7 +16,6 @@
 /**
  * 瀹夐槻--娑堥槻绠$悊鎺у埗灞�
  */
-@Slf4j
 @RestController
 @RequestMapping("basic/security")
 public class FireController {
diff --git a/igds-security/src/main/java/com/ld/igds/sec/controller/PatrolController.java b/igds-security/src/main/java/com/ld/igds/sec/controller/PatrolController.java
index 00cae55..8c105e3 100644
--- a/igds-security/src/main/java/com/ld/igds/sec/controller/PatrolController.java
+++ b/igds-security/src/main/java/com/ld/igds/sec/controller/PatrolController.java
@@ -2,7 +2,6 @@
 
 import com.ld.igds.sec.dto.SecPatrolRecordDto;
 import com.ld.igds.sec.manager.SecManager;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -11,7 +10,6 @@
 /**
  * 瀹夐槻--鐢靛瓙宸℃洿绠$悊鎺у埗灞�
  */
-@Slf4j
 @RestController
 @RequestMapping("basic/security")
 public class PatrolController {
diff --git a/igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java b/igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java
new file mode 100644
index 0000000..7dce8b4
--- /dev/null
+++ b/igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java
@@ -0,0 +1,62 @@
+package com.ld.igds.sec.service;
+
+import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
+import com.ld.igds.models.SecSnapConf;
+import com.ld.igds.models.SecSnapDepot;
+import com.ld.igds.util.ContextUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.hibernate.Session;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class SecSnapService extends HibernateDao {
+
+
+    /**
+     * 鏍规嵁鏉′欢鑾峰彇閰嶇疆绫诲埆
+     *
+     * @param companyId 缁勭粐缂栫爜锛屼笉鍙负绌�
+     * @param deptId    鎵�灞炲垎搴擄紝鍙负绌�
+     * @return 鏌ヨ缁撴灉
+     */
+    public List<SecSnapConf> listSnapConf(String companyId, String deptId) {
+        String hql = " from " + SecSnapConf.class.getName()
+                + " where companyId=:companyId";
+
+        Map<String, Object> args = new HashMap<>();
+        args.put("companyId", companyId);
+        if (StringUtils.isNotEmpty(deptId)) {
+            hql += " and deptId =:deptId";
+            args.put("deptId", deptId);
+        }
+
+        return this.query(hql, args);
+    }
+
+    public void addData(SecSnapConf snapConf, String fileName, String result) {
+        Session session = this.getSessionFactory().openSession();
+        try {
+            SecSnapDepot data = new SecSnapDepot();
+            data.setId(ContextUtil.getUUID());
+            data.setCompanyId(snapConf.getCompanyId());
+            data.setDeptId(snapConf.getDeptId());
+            data.setCameraId(snapConf.getCameraId());
+            data.setResult(result);
+            data.setUpdateTime(new Date());
+            data.setFileSuffix("jpg");
+            data.setFileName(fileName);
+
+            session.save(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            session.flush();
+            session.close();
+        }
+    }
+}
diff --git a/igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java b/igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java
index 418ed6a..15878a8 100644
--- a/igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java
+++ b/igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java
@@ -11,6 +11,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -19,7 +20,7 @@
 @Component
 public class SecurityService extends HibernateDao {
 
-    @Autowired
+    @Resource
     private CoreSecCameraService coreSecCameraService;
 
     public List<SecCamera> listCamera(Map<String, Object> param) {
diff --git a/igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java b/igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java
index 9b905c2..1430e27 100644
--- a/igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java
+++ b/igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java
@@ -16,8 +16,6 @@
 
 	@Autowired
 	private SecFireServiceMapper serviceMapper;
-	@Autowired
-	private RedisUtil redisUtil;
 
 	@Override
 	public List<SecFireDto> getAllFire(String companyId) {
diff --git a/igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml b/igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml
new file mode 100644
index 0000000..0a73e8e
--- /dev/null
+++ b/igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.ld.igds.models.SecSnapDepot</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">涓婚敭</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+      </PropertyDef>
+      <PropertyDef name="depotId">
+        <Property></Property>
+        <Property name="label">鎵�灞炰粨搴�</Property>
+      </PropertyDef>
+      <PropertyDef name="cameraId">
+        <Property></Property>
+        <Property name="label">鍏宠仈鎽勫儚澶�</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="zpsj">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎶撴媿鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="txwjhzm">
+        <Property></Property>
+        <Property name="label">鍥惧儚鏂囦欢鍚庣紑鍚�</Property>
+      </PropertyDef>
+      <PropertyDef name="wjmc">
+        <Property></Property>
+        <Property name="label">鏂囦欢鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="yzwbh">
+        <Property></Property>
+        <Property name="label">棰勭疆浣嶇紪鍙�</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtConf">
+      <Property name="creationType">com.ld.igds.models.SecSnapConf</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">涓婚敭</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+      </PropertyDef>
+      <PropertyDef name="depotId">
+        <Property></Property>
+        <Property name="label">鎵�灞炰粨搴�</Property>
+      </PropertyDef>
+      <PropertyDef name="cameraId">
+        <Property></Property>
+        <Property name="label">鍏宠仈鎽勫儚澶�</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:5;regionPadding:5">
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="loadMode">lazy</Property>
+      <Property name="dataType">[dtMain]</Property>
+    </DataSet>
+    <DataSet id="dsConf">
+      <Property name="dataType">[dtConf]</Property>
+    </DataSet>
+    <ToolBar>
+      <ToolBarLabel>
+        <Property name="text">鑿滃崟鏍忥細</Property>
+      </ToolBarLabel>
+      <Fill/>
+      <ToolBarButton>
+        <ClientEvent name="onClick">view.get(&quot;#dialogConf&quot;).show();&#xD;
+</ClientEvent>
+        <Property name="caption">鎶撴媿閰嶇疆</Property>
+      </ToolBarButton>
+    </ToolBar>
+    <Container layout="regionPadding:10" layoutConstraint="center">
+      <Property name="exClassName">bg-color</Property>
+      <DataGrid layoutConstraint="center padding:5px">
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <RowNumColumn>
+          <Property name="width">50</Property>
+        </RowNumColumn>
+        <DataColumn name="depotId">
+          <Property name="property">depotId</Property>
+        </DataColumn>
+        <DataColumn name="updateTime">
+          <Property name="property">updateTime</Property>
+        </DataColumn>
+        <DataColumn name="zpsj">
+          <Property name="property">zpsj</Property>
+        </DataColumn>
+        <DataColumn name="txwjhzm">
+          <Property name="property">txwjhzm</Property>
+        </DataColumn>
+        <DataColumn name="wjmc">
+          <Property name="property">wjmc</Property>
+        </DataColumn>
+        <DataColumn name="yzwbh">
+          <Property name="property">yzwbh</Property>
+        </DataColumn>
+      </DataGrid>
+    </Container>
+    <Dialog id="dialogConf">
+      <Buttons/>
+      <Children>
+        <ToolBar>
+          <ToolBarButton>
+            <Property name="caption">鏂板</Property>
+          </ToolBarButton>
+        </ToolBar>
+        <DataGrid>
+          <Property name="dataSet">dsConf</Property>
+          <DataColumn name="depotId">
+            <Property name="property">depotId</Property>
+          </DataColumn>
+          <DataColumn name="cameraId">
+            <Property name="property">cameraId</Property>
+          </DataColumn>
+          <DataColumn name="updateTime">
+            <Property name="property">updateTime</Property>
+          </DataColumn>
+        </DataGrid>
+      </Children>
+      <Tools/>
+    </Dialog>
+  </View>
+</ViewConfig>
diff --git a/igds-security/src/main/java/com/ld/igds/timer/JobLampService.java b/igds-security/src/main/java/com/ld/igds/timer/JobLampService.java
index 28c5fde..b4725a5 100644
--- a/igds-security/src/main/java/com/ld/igds/timer/JobLampService.java
+++ b/igds-security/src/main/java/com/ld/igds/timer/JobLampService.java
@@ -15,6 +15,8 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -28,9 +30,9 @@
 @Service(Constant.JOB_BEAN_LAMP)
 public class JobLampService implements Job {
 
-    @Autowired
+    @Resource
     private LampManager lampManager;
-    @Autowired
+    @Resource
     private CoreDeviceService coreDeviceService;
 
     @Override
diff --git a/igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java b/igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java
new file mode 100644
index 0000000..faa3667
--- /dev/null
+++ b/igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java
@@ -0,0 +1,145 @@
+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.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;
+import java.util.Map;
+
+/**
+ * 瀹夐槻妯″潡鏍囧畾鏃跺櫒閰嶇疆
+ */
+@Slf4j
+@Component(ScheduledSec.BEAN_ID)
+public class ScheduledSec {
+
+    public static final String BEAN_ID = "sec.scheduled";
+
+    @Resource
+    private ConfigData configData;
+    @Resource
+    private SecSnapService secSnapService;
+    @Resource
+    private CoreSecCameraService coreSecCameraService;
+    @Resource
+    private SnapSerService snapSerService;
+    @Resource
+    private CoreFileService fileService;
+    @Resource
+    private ApiCameraManager apiCameraManager;
+
+    /**
+     * 姣忛棿闅�30鍒嗛挓鎵ц涓�娆�
+     */
+    @Scheduled(cron = "0 0/30 * * * ?")
+    public void scheduled30() {
+
+        //鎵ц鎶撴媿鍒ゆ柇
+        doExeSnap(new Date());
+    }
+
+    /**
+     * 瀹氭椂鎵ц鎶撴媿
+     */
+    private void doExeSnap(Date date) {
+
+        if (configData.getSnapTime() < 0) return;
+
+        //鑾峰彇褰撳墠绯荤粺鏃堕棿
+        int curHour = DateUtil.getHour(date);
+        if (curHour != configData.getSnapTime()) 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());
+
+                if (null == secCamera) continue;
+
+                snapSer = snapSerMap.get(snapConf.getDeptId());
+                if (null == snapSer) {
+                    snapSer = snapSerService.getCacheByDeptId(snapConf.getDeptId());
+                    snapSerMap.put(snapConf.getDeptId(), snapSer);
+                }
+
+                if (null == snapSer) {
+                    log.error("------------鎶撴媿涓洪厤缃姄鎷嶅垎鏈�----------");
+                    continue;
+                }
+
+                doExeSnapToData(secCamera, snapSer, snapConf);
+
+                Thread.sleep(500);
+            }
+        } catch (Exception e) {
+            log.error("----------鎶撴媿鍚庡彴鍑洪敊---------{}", e);
+        }
+    }
+
+    private void doExeSnapToData(SecCamera secCamera, SnapSer snapSer, SecSnapConf snapConf) {
+        ApiSnapReq req = new ApiSnapReq();
+        req.setCompanyId(secCamera.getCompanyId());
+        req.setDeptId(secCamera.getDeptId());
+        req.setSn(secCamera.getSn());
+        req.setSnapType(secCamera.getSnapType());
+        req.setPlayType(secCamera.getPlayType());
+        req.setSerSn(snapSer.getSn());
+        req.setCameraName(secCamera.getName());
+        req.setBizId(null);
+
+        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";
+        req.setFileName(fileName);
+
+        //鎵ц鎶撴媿
+        ApiCameraResp resp = apiCameraManager.getApiCameraService(secCamera.getPlayType()).snapImg(req);
+        resp.setFileName(fileName);
+
+        //鎵ц璁板綍淇濆瓨
+        secSnapService.addData(snapConf, fileName, resp.getCode());
+    }
+}
diff --git a/igds-web/src/main/java/com/ld/igds/TestAction.java b/igds-web/src/main/java/com/ld/igds/TestAction.java
index 5fb216b..75db25c 100644
--- a/igds-web/src/main/java/com/ld/igds/TestAction.java
+++ b/igds-web/src/main/java/com/ld/igds/TestAction.java
@@ -11,7 +11,7 @@
 import com.ld.igds.grain.service.CoreGrainService;
 import com.ld.igds.models.WeatherConf;
 import com.ld.igds.models.WeatherInfo;
-import com.ld.igds.timer.WeatherScheduled;
+import com.ld.igds.timer.WeatherTimerService;
 import com.ld.igds.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -37,7 +37,7 @@
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
-    private WeatherScheduled weatherScheduled;
+    private WeatherTimerService weatherTimerService;
 
     @Override
     public String getUrl() {
@@ -137,7 +137,7 @@
         }
 
         if (t.equals("weather11")) {
-            weatherScheduled.scheduled();
+            weatherTimerService.doExe();
         }
     }
 
@@ -168,7 +168,7 @@
             log.info("-----娴嬭瘯璋冪敤姘旇薄----deptId={},cityId={}", deptId, cityId);
 
             Date date = new Date();
-            WeatherInfo info = weatherScheduled.getWeatherByWeb(date, conf);
+            WeatherInfo info = weatherTimerService.getWeatherByWeb(date, conf);
             if (null == info) {
                 response.getWriter().print("MSG:ERROR");
             } else {
diff --git a/igds-web/src/main/resources/application.yml b/igds-web/src/main/resources/application.yml
index 8a08300..2e7f083 100644
--- a/igds-web/src/main/resources/application.yml
+++ b/igds-web/src/main/resources/application.yml
@@ -1,7 +1,7 @@
 ##########################  Server   ########################## 涓规1鍩庡叧鐪佺伯椋熷偍澶囧簱
 spring:
   profiles:
-    active: linux
+    active: dev
   application:
     name: igds
   main:
@@ -47,6 +47,8 @@
     phone: 400-627-1116
     website: http://www.fzzygf.com
     address: 閮戝窞甯傞珮鏂板尯闀挎た璺�11鍙锋渤鍗楃渷鍥藉澶у绉戞妧鍥鍖�1鍙锋ゼ
+    ##浠撳唴瑙嗛鎶撴媿鏃堕棿閰嶇疆0-24
+    snap-time: 12
   file-path: D:/IGDS/FILE/
   ## 鎺ㄩ�佸井淇″钩鍙扮殑鍦板潃
   warn-path: http://124.71.162.207:8299/igds-wx/gateway

--
Gitblit v1.9.3