jiazx0107@163.com
2023-11-06 69cd9f59a0fabf12f8c9147fcba7f69817a870b3
更新仓内抓拍2
已删除1个文件
已修改17个文件
581 ■■■■ 文件已修改
igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/data/ConfigData.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/timer/DepotBookStoreScheduled.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-parent-pom/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/service/SecSnapDepotService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml 171 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepotPR.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/timer/JobLampService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-security/src/main/java/com/ld/igds/timer/ScheduledSec.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/pom.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/media.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/templates/admin/home.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/templates/index/index.html 补丁 | 查看 | 原始文档 | blame | 历史
igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
@@ -111,12 +111,12 @@
     *
     * @param fileName
     * @param timeStr
     *            æŠ“拍的年月日时分秒 yyyyMMddHHmmss
     *            æŠ“拍的年月日时分秒 yyyyMMdd
     * @param response
     * @return
     * @throws IOException
     */
    @RequestMapping(value = "/view-snap-depot", method = RequestMethod.GET, produces = { "application/vnd.ms-excel;charset=UTF-8" })
    @RequestMapping(value = "/get-snap-depot", method = RequestMethod.GET, produces = { "application/vnd.ms-excel;charset=UTF-8" })
    public String getDepotSnap(String fileName, String timeStr,
            HttpServletResponse response) throws IOException {
igds-core/src/main/java/com/ld/igds/data/ConfigData.java
@@ -36,10 +36,4 @@
    @Value("${igds.weather-path}")
    private String weatherPath;
    /**
     * æŠ“拍时间配置
     */
    @Value("${igds.default.snap-time}")
    private int snapTime = -1;
}
igds-inout/src/main/java/com/ld/igds/timer/DepotBookStoreScheduled.java
@@ -32,9 +32,6 @@
    public static final String BEAN_ID = "inout.depotBookStoreScheduled";
    @Resource
    private InoutService inoutService;
    @Resource
    private CoreCommonService commonService;
    /**
igds-parent-pom/pom.xml
@@ -39,12 +39,6 @@
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>${spring.boot.version}</version>
         </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
igds-security/src/main/java/com/ld/igds/models/SecSnapConf.java
@@ -16,7 +16,6 @@
@Entity
@Table(name = "D_SEC_SNAP_CONF")
public class SecSnapConf {
    @Id
    @Column(name = "ID_", length = 40)
    @PropertyDef(label = "主键")
@@ -38,7 +37,19 @@
    @PropertyDef(label = "关联摄像头")
    private String cameraId;
    @Column(name = "UPDATE_TIME_", length = 1)
    @Column(name = "ACT_HOUR1_")
    @PropertyDef(label = "执行时间1")
    private int actHour1;
    @Column(name = "ACT_HOUR2_")
    @PropertyDef(label = "执行时间2")
    private int actHour2;
    @Column(name = "ACT_HOUR3_")
    @PropertyDef(label = "执行时间3")
    private int actHour3;
    @Column(name = "UPDATE_TIME_")
    @PropertyDef(label = "更新时间")
    private Date updateTime;
}
igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java
@@ -60,4 +60,27 @@
    @PropertyDef(label = "预置位编号")
    private String preset;
    public SecSnapDepot() {
    }
    public SecSnapDepot(String id, String companyId, String deptId, String depotId, String cameraId, String result, Date updateTime, String fileSuffix, String fileName, String preset) {
        this.id = id;
        this.companyId = companyId;
        this.deptId = deptId;
        this.depotId = depotId;
        this.cameraId = cameraId;
        this.result = result;
        this.updateTime = updateTime;
        this.fileSuffix = fileSuffix;
        this.fileName = fileName;
        this.preset = preset;
    }
    public SecSnapDepot(String tag) {
        if ("TEST".equals(tag)) {
            this.id = "TEST";
            this.fileName = "./static/images/img-fail.jpg";
            this.updateTime = new Date();
        }
    }
}
igds-security/src/main/java/com/ld/igds/sec/service/SecSnapDepotService.java
@@ -2,13 +2,19 @@
import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
import com.bstek.dorado.data.provider.Page;
import com.ld.igds.models.SecSnapConf;
import com.ld.igds.models.SecSnapDepot;
import com.ld.igds.util.ContextUtil;
import com.ld.igds.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository
@@ -48,4 +54,96 @@
        this.pagingQuery(page, hql, countHql, args);
    }
    /**
     * æ ¹æ®æ¡ä»¶èŽ·å–é…ç½®ç±»åˆ«
     *
     * @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.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();
        }
    }
    public void addConf(SecSnapConf conf) {
        Session session = this.getSessionFactory().openSession();
        try {
            conf.setId(ContextUtil.getUUID());
            conf.setUpdateTime(new Date());
            session.save(conf);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }
    public void updateConf(SecSnapConf conf) {
        Session session = this.getSessionFactory().openSession();
        try {
            conf.setUpdateTime(new Date());
            session.save(conf);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }
    public void updateActHour(SecSnapConf conf) {
        String hql = " update "+SecSnapConf.class.getName()+" set actHour1=:actHour1,actHour2=:actHour2,actHour3=:actHour3 where companyId=:companyId and deptId=:deptId";
        Session session = this.getSessionFactory().openSession();
        try {
            Query q = session.createQuery(hql);
            q.setInteger("actHour1", conf.getActHour1());
            q.setInteger("actHour2", conf.getActHour2());
            q.setInteger("actHour3", conf.getActHour3());
            q.setString("companyId", conf.getCompanyId());
            q.setString("deptId", conf.getDeptId());
            q.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }
}
igds-security/src/main/java/com/ld/igds/sec/service/SecSnapService.java
ÎļþÒÑɾ³ý
igds-security/src/main/java/com/ld/igds/sec/service/SecurityService.java
@@ -8,7 +8,6 @@
import org.apache.commons.lang3.StringUtils;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
igds-security/src/main/java/com/ld/igds/sec/service/impl/CoreSecFireServiceImpl.java
@@ -4,7 +4,6 @@
import com.ld.igds.sec.dto.SecurityParam;
import com.ld.igds.sec.mapper.SecFireServiceMapper;
import com.ld.igds.sec.service.CoreSecFireService;
import com.ld.igds.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml
@@ -20,6 +20,11 @@
      <PropertyDef name="depotId">
        <Property></Property>
        <Property name="label">所属仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="cameraId">
        <Property></Property>
@@ -29,19 +34,19 @@
        <Property name="dataType">Date</Property>
        <Property name="label">更新时间</Property>
      </PropertyDef>
      <PropertyDef name="zpsj">
        <Property name="dataType">Date</Property>
        <Property name="label">抓拍时间</Property>
      <PropertyDef name="result">
        <Property></Property>
        <Property name="label">抓拍结果</Property>
      </PropertyDef>
      <PropertyDef name="txwjhzm">
      <PropertyDef name="fileSuffix">
        <Property></Property>
        <Property name="label">图像文件后缀名</Property>
      </PropertyDef>
      <PropertyDef name="wjmc">
      <PropertyDef name="fileName">
        <Property></Property>
        <Property name="label">文件名称</Property>
      </PropertyDef>
      <PropertyDef name="yzwbh">
      <PropertyDef name="preset">
        <Property></Property>
        <Property name="label">预置位编号</Property>
      </PropertyDef>
@@ -60,22 +65,47 @@
        <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="depotId">
        <Property></Property>
        <Property name="label">所属仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="cameraId">
        <Property></Property>
        <Property name="label">关联摄像头</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;securityPR#listCamera&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="actHour1">
        <Property name="dataType">int</Property>
        <Property name="label">第一次</Property>
        <Property name="displayFormat"># ç‚¹</Property>
      </PropertyDef>
      <PropertyDef name="actHour2">
        <Property name="dataType">int</Property>
        <Property name="label">第二次</Property>
        <Property name="displayFormat"># ç‚¹</Property>
      </PropertyDef>
      <PropertyDef name="actHour3">
        <Property name="dataType">int</Property>
        <Property name="label">第三次</Property>
        <Property name="displayFormat"># ç‚¹</Property>
      </PropertyDef>
    </DataType>
    <DataType name="dtQuery">
      <PropertyDef name="depotId">
        <Property/>
        <Property></Property>
        <Property name="label">所属仓库</Property>
      </PropertyDef>
      <PropertyDef name="start">
@@ -85,6 +115,18 @@
      <PropertyDef name="end">
        <Property name="label">截止日期</Property>
        <Property name="dataType">Date</Property>
      </PropertyDef>
      <PropertyDef name="actHour1">
        <Property name="dataType">int</Property>
        <Property name="label">第一次</Property>
      </PropertyDef>
      <PropertyDef name="actHour2">
        <Property name="dataType">int</Property>
        <Property name="label">第二次</Property>
      </PropertyDef>
      <PropertyDef name="actHour3">
        <Property name="dataType">int</Property>
        <Property name="label">第三次</Property>
      </PropertyDef>
    </DataType>
  </Model>
@@ -98,10 +140,15 @@
    </DataSet>
    <DataSet id="dsConf">
      <Property name="dataType">[dtConf]</Property>
      <Property name="dataProvider">secSnapDepotPR#listConf</Property>
    </DataSet>
    <DataSet id="dsQuery">
      <ClientEvent name="onReady">self.insert({});</ClientEvent>
      <Property name="dataType">dtQuery</Property>
    </DataSet>
    <DataSet id="dsParam">
      <Property name="dataType">dtConf</Property>
      <Property name="dataProvider">secSnapDepotPR#getConfActHour</Property>
    </DataSet>
    <Panel layout="regionPadding:10">
      <Property name="caption">视频图像信息管理</Property>
@@ -160,14 +207,15 @@
        <Container layoutConstraint="center">
          <Property name="exClassName">bg-color</Property>
          <DataBlockView>
            <ClientEvent name="onRenderBlock">&#xD;
var time = arg.data.get(&quot;zpsj&quot;).formatDate(&quot;Y-m-d H:i&quot;);&#xD;
var hwdm = arg.data.getText(&quot;hwdm&quot;);&#xD;
var cfdm = arg.data.getText(&quot;cfdm&quot;);&#xD;
var kqdm = arg.data.getText(&quot;kqdm&quot;);&#xD;
var imgSrc = &quot;../../grain/file/get-depot-snap?filePath=&quot;+arg.data.get(&quot;wjdz&quot;);&#xD;
var htm = &quot;&lt;div>&lt;img src='&quot;+imgSrc+&quot;' style='height:250px; width:100%;'>&lt;div>&lt;span style='padding-left:10px;'>库区:&quot;+kqdm+&quot;&lt;/span>&lt;span style='float:right;padding-right:10px;'>仓房:&quot;+cfdm+&quot;&lt;/span>&lt;/div>&lt;div>&lt;span style='padding-left:10px;'>货位:&quot;+hwdm+&quot;&lt;/span>&lt;span style='float:right;padding-right:10px;'>时间:&quot;+time+&quot;&lt;/span>&lt;/div>&lt;/div>&quot;;&#xD;
&#xD;
            <ClientEvent name="onRenderBlock">var id = arg.data.get(&quot;id&quot;);&#xD;
var time = arg.data.get(&quot;updateTime&quot;).formatDate(&quot;Y-m-d H:i&quot;);&#xD;
var timeStr = arg.data.get(&quot;updateTime&quot;).formatDate(&quot;Ymd&quot;);&#xD;
var depotId = arg.data.getText(&quot;depotId&quot;);&#xD;
var imgSrc = &quot;../../basic/file/get-snap-depot?fileName=&quot;+arg.data.get(&quot;fileName&quot;)+&quot;&amp;timeStr=&quot;+timeStr;&#xD;
var htm = &quot;&lt;div>&lt;img src='./static/images/img-fail.jpg' style='height:250px; width:100%;'>&lt;div>&lt;span style='padding-left:10px;'>仓库:未查询到数据&lt;/span>&lt;span style='float:right;padding-right:10px;'>时间:&quot;+time+&quot;&lt;/span>&lt;/div>&lt;/div>&quot;;&#xD;
if(&quot;TEST&quot; != id){&#xD;
    htm = &quot;&lt;div>&lt;img src='&quot;+imgSrc+&quot;' style='height:250px; width:100%;'>&lt;div>&lt;span style='padding-left:10px;'>仓库:&quot;+depotId+&quot;&lt;/span>&lt;span style='float:right;padding-right:10px;'>时间:&quot;+time+&quot;&lt;/span>&lt;/div>&lt;/div>&quot;;&#xD;
}&#xD;
arg.dom.innerHTML = htm;&#xD;
arg.progressDefault=false;</ClientEvent>
            <Property name="dataSet">dsMain</Property>
@@ -192,25 +240,72 @@
      <Tools/>
    </Panel>
    <Dialog id="dialogConf">
      <Property name="width">750</Property>
      <Property name="caption">仓内抓拍配置</Property>
      <Buttons/>
      <Children>
        <ToolBar>
          <ToolBarButton>
            <Property name="caption">新增</Property>
          </ToolBarButton>
        </ToolBar>
        <DataGrid>
        <FieldSet>
          <Property name="caption">抓拍摄像头配置</Property>
          <Buttons>
            <Button>
              <ClientEvent name="onClick">view.get(&quot;#dsConf&quot;).insert();</ClientEvent>
              <Property name="caption">新增配置</Property>
            </Button>
            <Button>
              <Property name="caption">保存配置</Property>
              <Property name="action">updateConf</Property>
            </Button>
          </Buttons>
          <Children>
            <DataGrid layoutConstraint="padding:10px">
          <Property name="dataSet">dsConf</Property>
              <Property name="height">400</Property>
              <RowNumColumn/>
          <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>
        </FieldSet>
        <FieldSet>
          <Property name="caption">抓拍时间配置</Property>
          <Property name="height">150</Property>
          <Buttons>
            <Button>
              <ClientEvent name="onClick">var data = view.get(&quot;#dsParam.data&quot;);&#xD;
view.get(&quot;#ajaxSnapTime&quot;).set(&quot;parameter&quot;,data).execute();</ClientEvent>
              <Property name="caption">保存抓时间</Property>
            </Button>
          </Buttons>
          <Children>
            <AutoForm>
              <Property name="dataSet">dsParam</Property>
              <Property name="cols">*,*,*</Property>
              <Property name="labelAlign">right</Property>
              <AutoFormElement>
                <Property name="name">actHour1</Property>
                <Property name="property">actHour1</Property>
                <Property name="trigger">listHour</Property>
                <Editor/>
              </AutoFormElement>
              <AutoFormElement>
                <Property name="name">actHour2</Property>
                <Property name="property">actHour2</Property>
                <Property name="trigger">listHour</Property>
                <Editor/>
              </AutoFormElement>
              <AutoFormElement>
                <Property name="name">actHour3</Property>
                <Property name="property">actHour3</Property>
                <Property name="trigger">listHour</Property>
                <Editor/>
              </AutoFormElement>
            </AutoForm>
          </Children>
        </FieldSet>
      </Children>
      <Tools/>
    </Dialog>
@@ -218,5 +313,17 @@
      <Property name="service">videoImgPR#delData</Property>
      <Property name="confirmMessage">当前数据删除后无法恢复,请确认要删除么?</Property>
    </AjaxAction>
    <UpdateAction id="updateConf">
      <Property name="dataResolver">secSnapDepotPR#updateConf</Property>
      <UpdateItem>
        <Property name="dataSet">dsConf</Property>
      </UpdateItem>
    </UpdateAction>
    <AjaxAction id="ajaxSnapTime">
      <Property name="service">secSnapDepotPR#updateActHour</Property>
    </AjaxAction>
    <ListDropDown id="listHour">
      <Property name="items">0,7,8,9,10,11,12,13,14,15,16,17,18</Property>
    </ListDropDown>
  </View>
</ViewConfig>
igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepotPR.java
@@ -1,14 +1,22 @@
package com.ld.igds.sec.view;
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.ld.igds.models.SecSnapConf;
import com.ld.igds.models.SecSnapDepot;
import com.ld.igds.sec.service.SecSnapDepotService;
import com.ld.igds.util.ContextUtil;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -38,7 +46,96 @@
        param.put("deptId", ContextUtil.subDeptId(null));
        snapDepotService.pageSnapDepot(page,param);
        //添加4条测试数据
        if (null == page.getEntities() || page.getEntities().isEmpty()) {
            Collection<SecSnapDepot> list = new ArrayList<>();
            list.add(new SecSnapDepot("TEST"));
            list.add(new SecSnapDepot("TEST"));
            list.add(new SecSnapDepot("TEST"));
            list.add(new SecSnapDepot("TEST"));
            page.setEntities(list);
        }
    }
    /**
     * secSnapDepotPR#getConfActHour
     *
     * é»˜è®¤èŽ·å–ç¬¬ä¸€æ¡æ•°æ®çš„é…ç½®ä¿¡æ¯ï¼Œå¦‚æžœæ²¡æœ‰å°±è¿”å›žä¸€ä¸ªç©ºçš„å¯¹è±¡
     * @param page
     * @param param
     * @return
     * @throws Exception
     */
    @DataProvider
    public SecSnapConf getConfActHour()throws Exception {
        List<SecSnapConf> list =   snapDepotService.listSnapConf(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null));
        if(null == list || list.isEmpty()) return new SecSnapConf();
        return list.get(0);
    }
    /**
     * secSnapDepotPR#listConf
     *
     * é»˜è®¤èŽ·å–ç¬¬ä¸€æ¡æ•°æ®çš„é…ç½®ä¿¡æ¯ï¼Œå¦‚æžœæ²¡æœ‰å°±è¿”å›žä¸€ä¸ªç©ºçš„å¯¹è±¡
     * @param page
     * @param param
     * @return
     * @throws Exception
     */
    @DataProvider
    public List<SecSnapConf> listConf()throws Exception {
        return  snapDepotService.listSnapConf(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null));
    }
    /**
     * secSnapDepotPR#updateConf
     * @param items
     * @throws Exception
     */
    @DataResolver
    public void updateConf(List<SecSnapConf> items)throws Exception {
        if(null ==items || items.isEmpty() ) return;
        for(SecSnapConf conf:items){
            if(null == conf.getId()){
                if(null == conf.getCompanyId()){
                    conf.setCompanyId(ContextUtil.getCompanyId());
                }
                if(null == conf.getDeptId()){
                    conf.setDeptId(ContextUtil.subDeptId(null));
                }
                snapDepotService.addConf(conf);
            }else{
                snapDepotService.updateConf(conf);
            }
        }
    }
    /**
     * secSnapDepotPR#updateActHour
     * @param items
     * @throws Exception
     */
    @Expose
    public void updateActHour(SecSnapConf conf)throws Exception {
        if(null == conf.getCompanyId()){
            conf.setCompanyId(ContextUtil.getCompanyId());
        }
        if(null == conf.getDeptId()){
            conf.setDeptId(ContextUtil.subDeptId(null));
        }
        //同步更新所有的执行时间一致
        snapDepotService.updateActHour(conf);
    }
}
igds-security/src/main/java/com/ld/igds/timer/JobLampService.java
@@ -13,7 +13,6 @@
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
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);
        //执行抓拍
igds-web/pom.xml
@@ -119,12 +119,13 @@
            <version>${igds.version}</version>
        </dependency>
        <!-- APP -可选-->
        <!-- APP -可选
        <dependency>
            <groupId>com.ld.igds</groupId>
            <artifactId>igds-api-phone</artifactId>
            <version>${igds.version}</version>
        </dependency>
         -->
        <!-- å…¶ä»–通用品牌协议 -->
        <dependency>
@@ -144,15 +145,15 @@
        </dependency>
        <!-- æŽ¥å£åŒ…,包括上海接口和、气象接口、三维接口-->
        <!-- æŽ¥å£åŒ…,包括上海接口和、气象接口、三维接口
        <dependency>
            <groupId>com.ld.igds</groupId>
            <artifactId>igds-api-inte</artifactId>
            <version>${igds.version}</version>
        </dependency>
        </dependency>-->
        <!--  ç§æœ‰åè®®-风正致远-->
        <!--  ç§æœ‰åè®®-风正致远
        <dependency>
            <groupId>com.ld.igds</groupId>
            <artifactId>igds-protocol-fzzy3</artifactId>
@@ -168,6 +169,7 @@
                </exclusion>
            </exclusions>
        </dependency>
        -->
        <!-- MODBUS-TCP
        <dependency>
@@ -202,7 +204,8 @@
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>-->
        </dependency>
        -->
        <!--  ç§æœ‰åè®®-贝博粮情-->
        <dependency>
@@ -253,7 +256,8 @@
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>-->
        </dependency>
        -->
        <!--  ç§æœ‰åè®®-正来电子
        <dependency>
@@ -270,7 +274,8 @@
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>-->
        </dependency>
        -->
        <!--  æµ·åº·è½¦ç‰Œè¯†åˆ«-SDK
        <dependency>
@@ -287,7 +292,9 @@
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>-->
        </dependency>
        -->
    </dependencies>
    <dependencyManagement>
igds-web/src/main/resources/media.properties
@@ -34,6 +34,7 @@
hik.mapMedia.5318.appSecret=2SrVYEybgnLYYBjvv08l
hik.mapMedia.5318.contextPath=/artemis
hik.mapMedia.5318.regionIndexCodes=[]
#-----演示环境-----#
hik.mapMedia.5000.ip=192.168.66.200
hik.mapMedia.5000.wanIp=221.8.37.106
igds-web/src/main/resources/templates/admin/home.html
@@ -130,12 +130,6 @@
<!--                                    <span class="text-muted text-xs block" th:text="${loginUser.cname}">管理员<b class="caret"></b></span>-->
                                </span>
                        </a>
<!--                        <ul class="dropdown-menu animated fadeInRight m-t-xs">-->
<!--                            <li><a class="J_menuItem"-->
<!--                                   href="./com.ld.igds.sys.UserCenter.d">个人中心</a></li>-->
<!--                            <li class="divider"></li>-->
<!--                            <li><a href="./log-out">安全退出</a></li>-->
<!--                        </ul>-->
                    </div>
                    <div class="logo-element">粮库</div>
                </li>
igds-web/src/main/resources/templates/index/index.html