czt
2 天以前 58067aa57fe5583fde99a61a8d79e3f355727329
巡检监管页面、及巡检记录页面
已添加5个文件
已修改6个文件
714 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/Patrol.view.xml 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolSuper.view.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/models/core.model.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/d7/common.css 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.fzzy.igds.data;
import com.fzzy.igds.domain.InoutConf;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description  åº“区巡更统计
 * @Author CZT
 * @Date 2025/12/17 10:28
 */
@Data
public class PatrolSuperData implements Serializable {
    private String companyId;      //组织编码
    private String deptId;         //库区编码
    private Integer weekNum = 0;       //7天内巡检人次;
    private Integer yesterdayNum = 0;  //昨天巡检人次;
    private Integer curNum = 0;        //当天巡检人次;
    private String isPatrol = "N";       //当天是否巡检:N-未巡检,Y-已巡检
    private String remark;         //备注说明
    private Date updateTime;
    public PatrolSuperData() {
        super();
    }
    public PatrolSuperData(String companyId, String deptId) {
        this.companyId = companyId;
        this.deptId = deptId;
        this.updateTime = new Date();
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
@@ -22,7 +22,7 @@
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '主键'")
    @Column(name = "id", columnDefinition = "varchar(8) COMMENT '主键(ID规则:yyyyMMdd)'")
    @TableField("id")
    private String id;
@@ -48,4 +48,8 @@
    @TableField("user_name")
    private String userName;
    @Column(name = "remark", columnDefinition = "varchar(200) COMMENT '备注说明'")
    @TableField("remark")
    private String remark;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java
@@ -1,15 +1,18 @@
package com.fzzy.igds.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.domain.Patrol;
import com.fzzy.igds.mapper.PatrolMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Slf4j
@@ -101,4 +104,46 @@
        }
    }
    /**
     * æŸ¥è¯¢7天内的所有巡更记录信息
     *
     * @return
     */
    public List<Patrol> getWeekList() {
        Date end = new Date();
        Date start = DateUtil.getNewByDay(end, -6);
        QueryWrapper<Patrol> queryWrapper = new QueryWrapper<>();
        queryWrapper.ge("create_time", DateUtil.getCurZero(start));
        queryWrapper.le("create_time", DateUtil.getNextZero(end));
        return patrolMapper.selectList(queryWrapper);
    }
    /**
     * æ ¹æ®æ¡ä»¶åˆ†é¡µæŸ¥è¯¢æ•°æ®
     * @param page
     * @param param
     */
    public void pagePatrolData(Page<Patrol> page, IgdsBaseParam param) {
        QueryWrapper<Patrol> queryWrapper = new QueryWrapper<>();
        if(StringUtils.isNotBlank(param.getDeptId())){
            queryWrapper.like("dept_id", param.getDeptId());
        }else {
            if(StringUtils.isNotBlank(param.getCompanyId())){
                queryWrapper.likeRight("dept_id", param.getCompanyId());
            }
        }
        if(null != param.getStart()){
            queryWrapper.ge("create_time", DateUtil.getCurZero(param.getStart()));
        }
        if(null != param.getEnd()){
            queryWrapper.le("create_time", DateUtil.getCurZero(param.getEnd()));
        }
        patrolMapper.selectPage(page, queryWrapper);
    }
}
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
@@ -290,7 +290,7 @@
        </ToolBarButton>
      </ToolBar>
      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridCamera&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="readOnly">true</Property>
        <Property name="selectionMode">singleRow</Property>
fzzy-igdss-view/src/main/java/com/fzzy/igds/Patrol.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtMain">
      <Property name="creationType">com.fzzy.igds.domain.Patrol</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">巡更单号</Property>
      </PropertyDef>
      <PropertyDef name="userId">
        <Property></Property>
        <Property name="label">巡逻人</Property>
      </PropertyDef>
      <PropertyDef name="confId">
        <Property></Property>
        <Property name="label">班次编号</Property>
      </PropertyDef>
      <PropertyDef name="confName">
        <Property></Property>
        <Property name="label">班次名称</Property>
      </PropertyDef>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">所属库区</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="userName">
        <Property></Property>
        <Property name="label">巡逻人</Property>
      </PropertyDef>
      <PropertyDef name="remark">
        <Property></Property>
        <Property name="label">备注信息</Property>
      </PropertyDef>
      <PropertyDef name="createTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">创建时间</Property>
      </PropertyDef>
      <PropertyDef name="createBy">
        <Property></Property>
        <Property name="label">创建人</Property>
      </PropertyDef>
      <PropertyDef name="updateTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">更新时间</Property>
      </PropertyDef>
      <PropertyDef name="updateBy">
        <Property></Property>
        <Property name="label">更新人</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:10">
    <ClientEvent name="onReady">
/**&#xD;
* æŸ¥è¯¢&#xD;
*/&#xD;
query = function(){&#xD;
    view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
}&#xD;
query();&#xD;
/**&#xD;
* å·¡æ£€è½¨è¿¹æŸ¥çœ‹&#xD;
*/&#xD;
patrolMap = function(){&#xD;
    var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
    if(select){&#xD;
        var patrolId = select.get(&quot;id&quot;);&#xD;
        &#xD;
        var url = &quot;/security/patrol/patrolRecord/&quot;+patrolId+&quot;?time=&quot;+ new Date().getTime();&#xD;
        &#xD;
        view.get(&quot;#iFrameTrack&quot;).set(&quot;path&quot;,url);&#xD;
        view.get(&quot;#dialogTrack&quot;).show();&#xD;
    }else{&#xD;
        $notify(&quot;请选择查看的巡检信息……&quot;);&#xD;
    }&#xD;
};&#xD;</ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsMain">
      <Property name="dataType">[dtMain]</Property>
      <Property name="dataProvider">patrolPR#pagePatrolData</Property>
      <Property name="pageSize">15</Property>
      <Property name="loadMode">lazy</Property>
    </DataSet>
    <DataSet id="dsParam">
      <ClientEvent name="onReady">self.insert({});</ClientEvent>
      <Property name="dataType">dtBaseParam</Property>
    </DataSet>
    <Container>
      <Property name="className">c-param</Property>
      <AutoForm>
        <Property name="cols">*,*,*,*,90,90</Property>
        <Property name="dataSet">dsParam</Property>
        <Property name="labelAlign">right</Property>
        <Property name="labelWidth">100</Property>
        <AutoFormElement>
          <Property name="name">companyId</Property>
          <Property name="property">companyId</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">deptId</Property>
          <Property name="property">deptId</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">start</Property>
          <Property name="property">start</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">end</Property>
          <Property name="property">end</Property>
          <Editor/>
        </AutoFormElement>
        <Button>
          <ClientEvent name="onClick">var data = view.get(&quot;#dsParam.data&quot;);&#xD;
            if(data){&#xD;
            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
            }else{&#xD;
            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
            }</ClientEvent>
          <Property name="caption">搜索</Property>
          <Property name="iconClass">fa fa-search</Property>
          <Property name="exClassName">btn-q1</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsParam&quot;).flushAsync();</ClientEvent>
          <Property name="caption">重置</Property>
          <Property name="exClassName">btn-q2</Property>
          <Property name="iconClass">fa fa-refresh</Property>
        </Button>
      </AutoForm>
    </Container>
    <Container>
      <Property name="className">c-data</Property>
      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="selectionMode">singleRow</Property>
        <Property name="readOnly">true</Property>
        <RowSelectorColumn/>
        <RowNumColumn>
          <Property name="width">50</Property>
          <Property name="caption">序号</Property>
        </RowNumColumn>
        <DataColumn name="id">
          <Property name="property">id</Property>
          <Property name="width">120</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">deptId</Property>
          <Property name="align">left</Property>
          <Property name="name">deptId</Property>
        </DataColumn>
        <DataColumn name="userName">
          <Property name="property">userName</Property>
          <Property name="align">center</Property>
          <Property name="width">150</Property>
        </DataColumn>
        <DataColumn name="confName">
          <Property name="property">confName</Property>
          <Property name="align">center</Property>
          <Property name="width">150</Property>
        </DataColumn>
        <DataColumn name="remark">
          <Property name="property">remark</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">updateTime</Property>
          <Property name="align">center</Property>
          <Property name="name">updateTime</Property>
          <Property name="width">160</Property>
        </DataColumn>
        <DataColumn>
          <ClientEvent name="onRenderCell">arg.dom.innerHTML = &quot;&lt;a href='javascript:;' onClick='patrolMap()' class='a-btn1'>巡检轨迹&lt;/a>&quot;;</ClientEvent>
          <Property name="caption">操作</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
          <Editor/>
        </DataColumn>
      </DataGrid>
      <ToolBar layoutConstraint="bottom">
        <Fill/>
        <DataPilot layoutConstraint="right">
          <Property name="itemCodes">pageSize,pages</Property>
          <Property name="dataSet">dsMain</Property>
        </DataPilot>
      </ToolBar>
    </Container>
    <Dialog id="dialogTrack">
      <Property name="width">98%</Property>
      <Property name="caption">巡检轨迹</Property>
      <Property name="contentOverflow">hidden</Property>
      <Property name="height">98%</Property>
      <Buttons/>
      <Children>
        <IFrame id="iFrameTrack" layoutConstraint="center"/>
      </Children>
      <Tools/>
    </Dialog>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
package com.fzzy.igds;
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.data.PatrolSuperData;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.domain.InoutNoticeIn;
import com.fzzy.igds.domain.Patrol;
import com.fzzy.igds.service.CoreDeptService;
import com.fzzy.igds.service.PatrolService;
import com.fzzy.igds.utils.DateUtil;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
/**
 * @Description å·¡æ›´ç›‘管统计
 * @Author CZT
 * @Date 2025/12/17 11:32
 */
@Component
public class PatrolPR {
    @Resource
    private PatrolService patrolService;
    @Resource
    private CoreDeptService coreDeptService;
    /**
     * patrolPR#getData å·¡æ£€ç›‘管统计
     *
     * @return
     * @throws Exception
     */
    @DataProvider
    public List<PatrolSuperData> getData() {
        //查询当前用户下属的所有库区
        List<Dept> deptList = coreDeptService.getDeptData();
        if(null == deptList || deptList.isEmpty()){
            return  null;
        }
        //库区转换
        Map<String, PatrolSuperData> map = new HashMap<>();
        for (Dept dept : deptList) {
            map.put(dept.getId(), new PatrolSuperData(dept.getCompanyId(), dept.getId()));
        }
        List<Patrol> weekList = patrolService.getWeekList();
        if(null != weekList && weekList.size() > 0){
            PatrolSuperData patrolSuperData;
            Date start = DateUtil.getCurZero(DateUtil.getNewByDay(new Date(), -1));  //昨天零点零分
            Date end = DateUtil.getCurZero(new Date());                         //今天零点零分
            for (Patrol patrol : weekList) {
                patrolSuperData = map.get(patrol.getDeptId());
            }
        }
        return new ArrayList<>(map.values());
    }
    /**
     * patrolPR#pagePatrolData èŽ·å–å·¡æ£€è®°å½•ä¿¡æ¯
     *
     * @param param
     * @return
     */
    @DataProvider
    public void pagePatrolData(Page<Patrol> page, IgdsBaseParam param) {
        if(null == param) {
            param = new IgdsBaseParam();
        }
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<Patrol> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
        patrolService.pagePatrolData(corePage, param);
        // é‡æ–°å°è£…
        page.setEntities(corePage.getRecords());
        page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
    }
}
fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolSuper.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtMain">
      <Property name="creationType">com.fzzy.igds.data.PatrolSuperData</Property>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">库区名称</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="companyId">
        <Property></Property>
        <Property name="label">系统组织编码</Property>
      </PropertyDef>
      <PropertyDef name="weekNum">
        <Property name="dataType">Integer</Property>
        <Property name="label">7天内巡检人次</Property>
      </PropertyDef>
      <PropertyDef name="yesterdayNum">
        <Property name="dataType">Integer</Property>
        <Property name="label">昨天巡检人次</Property>
      </PropertyDef>
      <PropertyDef name="curNum">
        <Property name="dataType">Integer</Property>
        <Property name="label">当天巡检人次</Property>
      </PropertyDef>
      <PropertyDef name="isPatrol">
        <Property></Property>
        <Property name="label">当天是否巡检</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="code">Y</Property>
                <Property name="name">已巡检</Property>
              </Entity>
              <Entity>
                <Property name="code">N</Property>
                <Property name="name">未巡检</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="remark">
        <Property></Property>
        <Property name="label">备注说明</Property>
      </PropertyDef>
      <PropertyDef name="updateTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">更新时间</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:10">
    <ClientEvent name="onClick">&#xD;
/**&#xD;
* æŸ¥çœ‹è¯¦æƒ…&#xD;
*/&#xD;
detail = function(){&#xD;
    var cur = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
    var deptId = cur.get(&quot;deptId&quot;);&#xD;
    var url = &quot;/com.fzzy.igds.Patrol.d&quot;;&#xD;
    var panelId = window.parent.frameElement.getAttribute('data-id');
    window.parent.parent.$.modal.openTab(&quot;巡更详情&quot;, url,false, panelId);
};&#xD;
    </ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsMain">
      <Property name="dataProvider">patrolPR#getData</Property>
      <Property name="dataType">[dtMain]</Property>
    </DataSet>
    <Container>
      <Property name="className">c-data3</Property>
      <DataGrid id="dgMain" layoutConstraint="padding:8">
        <ClientEvent name="onDataRowClick">view.get(&quot;#dgMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="readOnly">true</Property>
        <Property name="selectionMode">singleRow</Property>
        <RowSelectorColumn/>
        <RowNumColumn/>
        <DataColumn name="deptId">
          <Property name="property">deptId</Property>
        </DataColumn>
        <DataColumn name="weekNum">
          <Property name="property">weekNum</Property>
          <Property name="align">center</Property>
          <Property name="width">150</Property>
        </DataColumn>
        <DataColumn name="yesterdayNum">
          <Property name="property">yesterdayNum</Property>
          <Property name="align">center</Property>
          <Property name="width">150</Property>
        </DataColumn>
        <DataColumn name="curNum">
          <Property name="property">curNum</Property>
          <Property name="align">center</Property>
          <Property name="width">150</Property>
        </DataColumn>
        <DataColumn name="isPatrol">
          <ClientEvent name="onRenderCell">arg.dom.style.background = arg.data.get(&quot;isPatrol&quot;)== 'Y' ?&quot;&quot;:&quot;#FF5722&quot;;&#xD;
            arg.processDefault = true;</ClientEvent>
          <Property name="property">isPatrol</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn name="remark">
          <Property name="property">remark</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="updateTime">
          <Property name="property">updateTime</Property>
          <Property name="align">center</Property>
          <Property name="width">160</Property>
        </DataColumn>
        <DataColumn>
          <ClientEvent name="onRenderCell">arg.dom.innerHTML = &quot;&lt;a href='javascript:;' onClick='detail()' class='a-btn1'>查看详情&lt;/a>&quot;;</ClientEvent>
          <Property name="width">160</Property>
          <Property name="caption">操作</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
          <Editor/>
        </DataColumn>
      </DataGrid>
    </Container>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -67,6 +67,11 @@
    <PropertyDef name="companyId">
      <Property></Property>
      <Property name="label">组织编码</Property>
      <Property name="mapping">
        <Property name="mapValues">${dorado.getDataProvider(&quot;companyPR#getData&quot;).getResult()}</Property>
        <Property name="keyProperty">id</Property>
        <Property name="valueProperty">dwmc</Property>
      </Property>
    </PropertyDef>
    <PropertyDef name="deptId">
      <Property></Property>
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
@@ -189,6 +189,25 @@
        return secManager.updatePos(params);
    }
    /*------------------巡检监管------------------*/
    /**
     * å·¡æ£€ç›‘管
     *
     * @return
     */
    @RequestMapping("/patrol-count")
    public String patrolCount(ModelMap view) {
        SysUser user = ContextUtil.getLoginUser();
        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
        String deptId = ContextUtil.subDeptId(user);
        view.put("deptId", deptId);
        return prefix + "/patrol-count";
    }
    /*------------------数量检测------------------*/
fzzy-igdss-web/src/main/resources/d7/common.css
@@ -22,6 +22,12 @@
    min-height: 1px;
}
.c-param1 {
    border-radius: 6px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, .2);
    min-height: 150px;
}
.c-data {
    border-radius: 6px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, .2);
@@ -33,7 +39,15 @@
    border-radius: 6px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, .2);
    padding-top: 5px;
    /*    margin-top: 10px;*/
    margin-top: 10px;
    top: 165px;
}
.c-data3 {
    border-radius: 6px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, .2);
    margin-top: -10px;
    margin-right: -5px;
}
.d-toolbar {
fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>智慧粮库管理系统-首页</title>
    <link rel="stylesheet" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
    <style>
        /** ç»Ÿè®¡å¿«æ·æ–¹å¼æ ·å¼ */
        .console-link-block {
            font-size: 16px;
            padding: 20px 20px;
            border-radius: 4px;
            background-color: #40D4B0;
            color: #FFFFFF !important;
            box-shadow: 0 2px 3px rgba(0, 0, 0, .05);
            position: relative;
            overflow: hidden;
            display: block;
        }
        .console-link-block .console-link-block-num {
            font-size: 40px;
            margin-bottom: 5px;
            opacity: .9;
        }
        .console-link-block .console-link-block-text {
            opacity: .8;
        }
        .console-link-block .console-link-block-icon {
            position: absolute;
            top: 50%;
            right: 20px;
            width: 50px;
            height: 50px;
            font-size: 50px;
            line-height: 50px;
            margin-top: -25px;
            color: #FFFFFF;
            opacity: .8;
        }
        .console-link-block .console-link-block-band {
            color: #fff;
            width: 100px;
            font-size: 12px;
            padding: 2px 0 3px 0;
            background-color: #E32A16;
            line-height: inherit;
            text-align: center;
            position: absolute;
            top: 8px;
            right: -30px;
            transform-origin: center;
            transform: rotate(45deg) scale(.8);
            opacity: .95;
            z-index: 2;
        }
        /** //统计快捷方式样式 */
        /** è®¾ç½®æ¯ä¸ªå¿«æ·å—的颜色 */
        .layui-row > div:nth-child(2) .console-link-block {
            background-color: #55A5EA;
        }
        .layui-row > div:nth-child(3) .console-link-block {
            background-color: #9DAFFF;
        }
        .layui-row > div:nth-child(4) .console-link-block {
            background-color: #F591A2;
        }
        .layui-row > div:nth-child(5) .console-link-block {
            background-color: #FEAA4F;
        }
        .layui-row > div:last-child .console-link-block {
            background-color: #9BC539;
        }
        .layui-fluid {
             padding: 0 5px;
        }
    </style>
</head>
<body>
<!-- æ­£æ–‡å¼€å§‹ -->
<div class="layui-fluid ew-console-wrapper">
    <!-- å¿«æ·æ–¹å¼ -->
    <div class="layui-row layui-col-space15" style="background: #FFFFFF;margin: 10px">
        <div class="layui-col-sm3  layui-col-xs6">
            <div class="console-link-block">
                <div class="console-link-block-num">0</div>
                <div class="console-link-block-text">已巡检库区数(当天)</div>
                <i class="console-link-block-icon layui-icon layui-icon-form"></i>
            </div>
        </div>
        <div class="layui-col-sm3 layui-col-xs6">
            <div class="console-link-block">
                <div class="console-link-block-num">0</div>
                <div class="console-link-block-text">未巡检库区数(当天)</div>
                <i class="console-link-block-icon layui-icon layui-icon-survey"></i>
            </div>
        </div>
        <div class="layui-col-sm3 layui-col-xs6">
            <div class="console-link-block">
                <div class="console-link-block-num">0</div>
                <div class="console-link-block-text">巡检人次(昨天)</div>
                <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
            </div>
        </div>
       <div class="layui-col-sm3 layui-col-xs6">
            <div class="console-link-block">
                <div class="console-link-block-num">0</div>
                <div class="console-link-block-text">巡检人次(近7天)</div>
                <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
            </div>
        </div>
    </div>
    <iframe src="/com.fzzy.igds.PatrolSuper.d" width="100%" height="695px" frameborder="0" allowfullscreen></iframe>
</div>
<!-- js部分 -->
<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
<!--<script src="${ctxPath}/assets/js/common.js"></script>-->
<script th:src="@{/ajax/libs/echarts/echarts.min.js}"></script>
<script th:src="@{/ajax/libs/echarts/china.js}"></script>
<script th:src="@{/ajax/libs/echarts/echarts-wordcloud.min.js}"></script>
<script>
    layui.use(['layer'], function () {
        var $ = layui.jquery;
        var layer = layui.layer;
    });
</script>
</body>
</html>