From 58067aa57fe5583fde99a61a8d79e3f355727329 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期三, 17 十二月 2025 16:30:41 +0800
Subject: [PATCH] 巡检监管页面、及巡检记录页面

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml                    |    2 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolSuper.view.xml                      |  135 +++++++++++
 fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html                |  141 +++++++++++
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java |   19 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java                        |    6 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java                 |   43 +++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/Patrol.view.xml                           |  212 +++++++++++++++++
 fzzy-igdss-view/src/main/java/models/core.model.xml                                   |    5 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java                             |   88 +++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java                |   47 +++
 fzzy-igdss-web/src/main/resources/d7/common.css                                       |   16 +
 11 files changed, 710 insertions(+), 4 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java
new file mode 100644
index 0000000..23b81c5
--- /dev/null
+++ b/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-鏈贰妫�锛孻-宸插贰妫�
+
+    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();
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
index b9a4aa3..3f3a7c8 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
+++ b/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瑙勫垯锛歽yyyMMdd)'")
     @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;
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java
index 26c57c1..3981b31 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PatrolService.java
+++ b/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);
+    }
 }
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
index 82233cd..9f4a8d4 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
+++ b/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>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/Patrol.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/Patrol.view.xml
new file mode 100644
index 0000000..5259831
--- /dev/null
+++ b/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>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java
new file mode 100644
index 0000000..ef412a6
--- /dev/null
+++ b/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())));
+    }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolSuper.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolSuper.view.xml
new file mode 100644
index 0000000..4844c17
--- /dev/null
+++ b/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>
diff --git a/fzzy-igdss-view/src/main/java/models/core.model.xml b/fzzy-igdss-view/src/main/java/models/core.model.xml
index b1f557d..f3c14ec 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/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>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
index e03ce1b..6423a53 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
+++ b/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";
+    }
+
 
     /*------------------鏁伴噺妫�娴�------------------*/
 
diff --git a/fzzy-igdss-web/src/main/resources/d7/common.css b/fzzy-igdss-web/src/main/resources/d7/common.css
index 9327885..9b23283 100644
--- a/fzzy-igdss-web/src/main/resources/d7/common.css
+++ b/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 {
diff --git a/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html b/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html
new file mode 100644
index 0000000..c401146
--- /dev/null
+++ b/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>
+<!-- 姝f枃寮�濮� -->
+<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>
\ No newline at end of file

--
Gitblit v1.9.3