From b0f374409775bd30ed8f0dc8d47d015d3edc0abb Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期二, 03 九月 2024 19:05:52 +0800
Subject: [PATCH] 1、修改查询策略 2、修改地址统计策略

---
 config/config.go            |   11 
 data/prepare.go             |   26 ++
 .idea/workspace.xml         |  689 ++++++++++++++++++++++++++++++----------------------
 db/elastic.go               |    2 
 rule/service.go             |   34 +
 config/rulemodelengine.yaml |    1 
 rule/engine.go              |    1 
 7 files changed, 453 insertions(+), 311 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a221e61..5974bc7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,9 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="919111b8-f2aa-4154-8db0-88e76c9af55d" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
+    <list default="true" id="919111b8-f2aa-4154-8db0-88e76c9af55d" name="Default Changelist" comment="1銆佷慨鏀规煡璇㈢瓥鐣�&#10;2銆佷慨鏀瑰湴鍧�缁熻绛栫暐">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/config/config.go" beforeDir="false" afterPath="$PROJECT_DIR$/config/config.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/config/rulemodelengine.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/config/rulemodelengine.yaml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data/prepare.go" beforeDir="false" afterPath="$PROJECT_DIR$/data/prepare.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/db/elastic.go" beforeDir="false" afterPath="$PROJECT_DIR$/db/elastic.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/rule/engine.go" beforeDir="false" afterPath="$PROJECT_DIR$/rule/engine.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/rule/service.go" beforeDir="false" afterPath="$PROJECT_DIR$/rule/service.go" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -18,64 +23,31 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/db/elastic.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="308">
-              <caret line="188" column="23" lean-forward="true" selection-start-line="188" selection-start-column="23" selection-end-line="188" selection-end-column="23" />
-              <folding>
-                <element signature="e#12#114#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/rule/service.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="521">
-              <caret line="56" column="31" lean-forward="true" selection-start-line="56" selection-start-column="31" selection-end-line="56" selection-end-column="31" />
-              <folding>
-                <element signature="e#14#107#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/task/engine.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="350">
-              <caret line="31" column="118" lean-forward="true" selection-start-line="31" selection-start-column="118" selection-end-line="31" selection-end-column="118" />
-              <folding>
-                <element signature="e#14#76#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/config/app.yaml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="253">
-              <caret line="21" column="21" lean-forward="true" selection-start-line="21" selection-start-column="21" selection-end-line="21" selection-end-column="21" />
+            <state relative-caret-position="179">
+              <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/.gitignore">
+        <entry file="file://$PROJECT_DIR$/data/prepare.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="432">
-              <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
+            <state relative-caret-position="71">
+              <caret line="17" column="36" lean-forward="true" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
+              <folding>
+                <element signature="e#14#61#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/db/models.go">
+        <entry file="file://$PROJECT_DIR$/rule/identityEngine.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="254">
-              <caret line="39" column="29" lean-forward="true" selection-start-line="39" selection-start-column="29" selection-end-line="39" selection-end-column="30" />
+            <state relative-caret-position="48">
+              <caret line="5" column="1" lean-forward="true" selection-start-line="5" selection-start-column="1" selection-end-line="5" selection-end-column="1" />
             </state>
           </provider>
         </entry>
@@ -83,8 +55,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/config/config.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="545">
-              <caret line="45" column="4" selection-start-line="45" selection-start-column="4" selection-end-line="45" selection-end-column="4" />
+            <state relative-caret-position="737">
+              <caret line="46" column="48" lean-forward="true" selection-start-line="46" selection-start-column="48" selection-end-line="46" selection-end-column="48" />
               <folding>
                 <element signature="e#16#89#0" expanded="true" />
               </folding>
@@ -93,31 +65,58 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/task/service.go">
+        <entry file="file://$PROJECT_DIR$/config/rulemodelengine.yaml">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="328">
-              <caret line="81" column="5" lean-forward="true" selection-start-line="80" selection-start-column="48" selection-end-line="81" selection-end-column="5" />
+            <state relative-caret-position="337">
+              <caret line="30" column="19" selection-start-line="30" selection-start-column="17" selection-end-line="30" selection-end-column="19" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/db/elastic.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="192">
+              <caret line="29" column="70" selection-start-line="29" selection-start-column="70" selection-end-line="29" selection-end-column="70" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/db/elasticScriptToId.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="840">
+              <caret line="39" column="46" lean-forward="true" selection-start-line="39" selection-start-column="46" selection-end-line="39" selection-end-column="46" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/rule/engine.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="189">
+              <caret line="8" column="4" selection-start-line="8" selection-start-column="4" selection-end-line="8" selection-end-column="4" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/db/models.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="193">
+              <caret line="152" column="11" selection-start-line="152" selection-start-column="11" selection-end-line="152" selection-end-column="11" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/db/repository.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="162">
+              <caret line="105" column="5" selection-start-line="105" selection-start-column="5" selection-end-line="105" selection-end-column="5" />
               <folding>
-                <element signature="e#14#53#0" expanded="true" />
+                <element signature="e#12#78#0" expanded="true" />
               </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/main.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-222">
-              <caret line="50" column="28" lean-forward="true" selection-start-line="50" selection-start-column="28" selection-end-line="50" selection-end-column="28" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/api/analysisApi/server.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="216">
-              <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
             </state>
           </provider>
         </entry>
@@ -133,36 +132,36 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>asdasfasfasf</find>
-      <find>s</find>
-      <find>1</find>
-      <find>15</find>
-      <find>moveout</find>
-      <find>daysSince</find>
-      <find>mip</find>
-      <find>info</find>
-      <find>now</find>
-      <find>status</find>
-      <find>resident</find>
-      <find>ruleModelEngine/config</find>
-      <find>Map</find>
-      <find>ce</find>
-      <find>append</find>
-      <find>person</find>
-      <find>PersonStatus</find>
-      <find>GetDocNumberFromPersonStatus</find>
-      <find>UpdatePersonInfo</find>
-      <find>labeManage</find>
-      <find>Table</find>
-      <find>16</find>
-      <find>newAlarmRules</find>
-      <find>map</find>
-      <find>make(map</find>
-      <find>inter</find>
       <find>task</find>
       <find>personInfo</find>
       <find>buildingFloors</find>
       <find>fmt</find>
+      <find>immediately...</find>
+      <find>flag</find>
+      <find>immediate</find>
+      <find>res</find>
+      <find>c.</find>
+      <find>captureDays</find>
+      <find>communityID</find>
+      <find>11010500011121000001</find>
+      <find>1000186974293721088</find>
+      <find>captureMap</find>
+      <find>瑙勫緥</find>
+      <find>&quot;alarmRules&quot;</find>
+      <find>aggs</find>
+      <find>docNumIdMap</find>
+      <find>BuildingTypeMixedUse</find>
+      <find>UpdateDBPersonLabel</find>
+      <find>last_appearance_status_time</find>
+      <find>PersonStatus</find>
+      <find>Update</find>
+      <find>resident</find>
+      <find>fieldworker</find>
+      <find>out</find>
+      <find>1FL</find>
+      <find>if false</find>
+      <find>fmt.Prin</find>
+      <find>time</find>
     </findStrings>
   </component>
   <component name="GOROOT" path="C:/Program Files/Go" />
@@ -175,39 +174,45 @@
         <option value="$PROJECT_DIR$/rule/identityEngine.go" />
         <option value="$PROJECT_DIR$/db/database.go" />
         <option value="$PROJECT_DIR$/api/analysis/server.go" />
-        <option value="$PROJECT_DIR$/data/prepare.go" />
         <option value="$PROJECT_DIR$/db/cache.go" />
         <option value="$PROJECT_DIR$/cache/cache.go" />
         <option value="$PROJECT_DIR$/cache/device.go" />
         <option value="$PROJECT_DIR$/task/tool.go" />
-        <option value="$PROJECT_DIR$/db/repository.go" />
-        <option value="$PROJECT_DIR$/rule/engine.go" />
-        <option value="$PROJECT_DIR$/api/analysisApi/server.go" />
         <option value="$PROJECT_DIR$/db/elasticScriptToId.go" />
-        <option value="$PROJECT_DIR$/config/config.go" />
-        <option value="$PROJECT_DIR$/rule/service.go" />
-        <option value="$PROJECT_DIR$/db/models.go" />
-        <option value="$PROJECT_DIR$/db/elastic.go" />
+        <option value="$PROJECT_DIR$/.gitignore" />
         <option value="$PROJECT_DIR$/config/app.yaml" />
+        <option value="$PROJECT_DIR$/api/analysisApi/server.go" />
         <option value="$PROJECT_DIR$/task/engine.go" />
+        <option value="$PROJECT_DIR$/rule/engine.go" />
         <option value="$PROJECT_DIR$/main.go" />
         <option value="$PROJECT_DIR$/task/service.go" />
-        <option value="$PROJECT_DIR$/.gitignore" />
+        <option value="$PROJECT_DIR$/config/rulemodelengine.yaml" />
+        <option value="$PROJECT_DIR$/db/repository.go" />
+        <option value="$PROJECT_DIR$/config/config.go" />
+        <option value="$PROJECT_DIR$/db/elastic.go" />
+        <option value="$PROJECT_DIR$/db/models.go" />
+        <option value="$PROJECT_DIR$/rule/service.go" />
+        <option value="$PROJECT_DIR$/data/prepare.go" />
       </list>
     </option>
   </component>
+  <component name="MavenProjectNavigator">
+    <treeState>
+      <expand />
+      <select />
+    </treeState>
+  </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-8" />
-    <option name="y" value="-8" />
-    <option name="width" value="1936" />
-    <option name="height" value="1176" />
+    <option name="x" value="-188" />
+    <option name="y" value="65" />
+    <option name="width" value="1934" />
+    <option name="height" value="1096" />
   </component>
   <component name="ProjectView">
     <navigator proportions="" version="1">
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -269,6 +274,7 @@
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
       <pane id="PackagesPane" />
     </panes>
   </component>
@@ -277,16 +283,16 @@
     <property name="GO_FMT" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1716721222613" />
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1725361380116" />
     <property name="configurable.Global.GOPATH.is.expanded" value="true" />
     <property name="configurable.Module.GOPATH.is.expanded" value="false" />
     <property name="configurable.Project.GOPATH.is.expanded" value="true" />
     <property name="go.gopath.indexing.explicitly.defined" value="true" />
-    <property name="last_opened_file_path" value="D:/" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../../vamicro" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="restartRequiresConfirmation" value="false" />
-    <property name="settings.editor.selected.configurable" value="go.vgo" />
+    <property name="settings.editor.selected.configurable" value="go.sdk" />
   </component>
   <component name="RecentsManager">
     <key name="MoveFile.RECENT_KEYS">
@@ -346,6 +352,13 @@
       <updated>1713166065668</updated>
       <workItem from="1713166068218" duration="121229000" />
       <workItem from="1714960004642" duration="106085000" />
+      <workItem from="1720089493644" duration="39000" />
+      <workItem from="1720525520632" duration="738000" />
+      <workItem from="1720585546926" duration="2007000" />
+      <workItem from="1722423056187" duration="7733000" />
+      <workItem from="1723867158753" duration="2865000" />
+      <workItem from="1724377473971" duration="11253000" />
+      <workItem from="1725341772968" duration="16298000" />
     </task>
     <task id="LOCAL-00001" summary="鏂板杩佸叆杩佸嚭锛屽睘鎬у垎鏋愶紝韬唤鍒嗘瀽绛�">
       <created>1714471841345</created>
@@ -375,47 +388,117 @@
       <option name="project" value="LOCAL" />
       <updated>1716720903870</updated>
     </task>
-    <option name="localTasksCounter" value="5" />
+    <task id="LOCAL-00005" summary="璋冩暣鎵ц绛栫暐 鍒濆榛樿涓嶆墽琛�">
+      <created>1716781022282</created>
+      <option name="number" value="00005" />
+      <option name="presentableId" value="LOCAL-00005" />
+      <option name="project" value="LOCAL" />
+      <updated>1716781022282</updated>
+    </task>
+    <task id="LOCAL-00006" summary="淇敼鍑嗗鏁版嵁娴佺▼锛岄�傚簲杈冨ぇ鏁版嵁閲忕殑鎿嶄綔">
+      <created>1716965056898</created>
+      <option name="number" value="00006" />
+      <option name="presentableId" value="LOCAL-00006" />
+      <option name="project" value="LOCAL" />
+      <updated>1716965056898</updated>
+    </task>
+    <task id="LOCAL-00007" summary="淇敼閰嶇疆鏂囦欢璺緞绛�">
+      <created>1716966791129</created>
+      <option name="number" value="00007" />
+      <option name="presentableId" value="LOCAL-00007" />
+      <option name="project" value="LOCAL" />
+      <updated>1716966791129</updated>
+    </task>
+    <task id="LOCAL-00008" summary="淇敼閰嶇疆鏂囦欢鍚嶇О">
+      <created>1716967653346</created>
+      <option name="number" value="00008" />
+      <option name="presentableId" value="LOCAL-00008" />
+      <option name="project" value="LOCAL" />
+      <updated>1716967653346</updated>
+    </task>
+    <task id="LOCAL-00009" summary="淇敼鏃ュ織璺緞">
+      <created>1716967970747</created>
+      <option name="number" value="00009" />
+      <option name="presentableId" value="LOCAL-00009" />
+      <option name="project" value="LOCAL" />
+      <updated>1716967970747</updated>
+    </task>
+    <task id="LOCAL-00010" summary="閰嶇疆鏂囦欢鍚嶇О杞崲涓哄皬鍐�">
+      <created>1716968142357</created>
+      <option name="number" value="00010" />
+      <option name="presentableId" value="LOCAL-00010" />
+      <option name="project" value="LOCAL" />
+      <updated>1716968142357</updated>
+    </task>
+    <task id="LOCAL-00011" summary="閰嶇疆鏂囦欢杞崲涓哄皬鍐�">
+      <created>1716968190240</created>
+      <option name="number" value="00011" />
+      <option name="presentableId" value="LOCAL-00011" />
+      <option name="project" value="LOCAL" />
+      <updated>1716968190240</updated>
+    </task>
+    <task id="LOCAL-00012" summary="淇鍚嶇О">
+      <created>1716968253739</created>
+      <option name="number" value="00012" />
+      <option name="presentableId" value="LOCAL-00012" />
+      <option name="project" value="LOCAL" />
+      <updated>1716968253739</updated>
+    </task>
+    <task id="LOCAL-00013" summary="鏂板绌哄瓧娈靛垽鏂�">
+      <created>1717034899301</created>
+      <option name="number" value="00013" />
+      <option name="presentableId" value="LOCAL-00013" />
+      <option name="project" value="LOCAL" />
+      <updated>1717034899301</updated>
+    </task>
+    <task id="LOCAL-00014" summary="璋冩暣杩涘嚭寮傚父杩囨护 缃湪鏁版嵁娈�">
+      <created>1717047728468</created>
+      <option name="number" value="00014" />
+      <option name="presentableId" value="LOCAL-00014" />
+      <option name="project" value="LOCAL" />
+      <updated>1717047728468</updated>
+    </task>
+    <option name="localTasksCounter" value="15" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="227314000" />
+    <option name="totallyTimeSpent" value="322355000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
-    <editor active="true" />
+    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17643923" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1641791" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Image Layers" order="2" />
       <window_info id="Designer" order="3" />
       <window_info id="UI Designer" order="4" />
       <window_info id="Capture Tool" order="5" />
       <window_info id="Favorites" order="6" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" weight="0.329718" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.42802304" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
+      <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.36008677" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.3991323" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
       <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Terminal" order="8" visible="true" weight="0.31765833" />
+      <window_info anchor="bottom" id="Terminal" order="8" weight="0.5347071" />
       <window_info anchor="bottom" id="Version Control" order="9" />
       <window_info anchor="bottom" id="Database Changes" order="10" />
       <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Palette" order="3" />
-      <window_info anchor="right" id="Theme Preview" order="4" />
-      <window_info anchor="right" id="Maven" order="5" />
-      <window_info anchor="right" id="Capture Analysis" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-      <window_info anchor="right" id="Database" order="8" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.25" />
+      <window_info anchor="right" id="Palette" order="2" />
+      <window_info anchor="right" id="Theme Preview" order="3" />
+      <window_info anchor="right" id="Maven" order="4" weight="0.32995737" />
+      <window_info anchor="right" id="Capture Analysis" order="5" />
+      <window_info anchor="right" id="Palette&#9;" order="6" />
+      <window_info anchor="right" id="Database" order="7" />
+      <window_info anchor="right" id="Ant Build" order="8" weight="0.25" />
     </layout>
     <layout-to-restore>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.17643923" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1641791" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Image Layers" order="2" />
       <window_info id="Designer" order="3" />
@@ -424,25 +507,25 @@
       <window_info id="Favorites" order="6" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.42802304" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.4184261" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.39923224" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
       <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Terminal" order="8" weight="0.31765833" />
+      <window_info anchor="bottom" id="Terminal" order="8" weight="0.10172745" />
       <window_info anchor="bottom" id="Version Control" order="9" />
       <window_info anchor="bottom" id="Database Changes" order="10" />
       <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Palette" order="3" />
-      <window_info anchor="right" id="Theme Preview" order="4" />
-      <window_info anchor="right" id="Maven" order="5" />
-      <window_info anchor="right" id="Capture Analysis" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-      <window_info anchor="right" id="Database" order="8" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.25" />
+      <window_info anchor="right" id="Palette" order="2" />
+      <window_info anchor="right" id="Theme Preview" order="3" />
+      <window_info anchor="right" id="Maven" order="4" weight="0.32995737" />
+      <window_info anchor="right" id="Capture Analysis" order="5" />
+      <window_info anchor="right" id="Palette&#9;" order="6" />
+      <window_info anchor="right" id="Database" order="7" />
+      <window_info anchor="right" id="Ant Build" order="8" weight="0.25" />
     </layout-to-restore>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -452,20 +535,35 @@
     <MESSAGE value="鏂板杩佸叆杩佸嚭锛屽睘鎬у垎鏋愶紝韬唤鍒嗘瀽绛�" />
     <MESSAGE value="娣诲姞甯冩帶妯″潡锛屽悎骞秔erson_status鍜宻napshot_count_summary鏁版嵁搴撶瓑" />
     <MESSAGE value="瀹屾垚甯冩帶妯″潡" />
-    <option name="LAST_COMMIT_MESSAGE" value="瀹屾垚甯冩帶妯″潡" />
+    <MESSAGE value="璋冩暣鎵ц绛栫暐 鍒濆榛樿涓嶆墽琛�" />
+    <MESSAGE value="淇敼鍑嗗鏁版嵁娴佺▼锛岄�傚簲杈冨ぇ鏁版嵁閲忕殑鎿嶄綔" />
+    <MESSAGE value="淇敼閰嶇疆鏂囦欢璺緞绛�" />
+    <MESSAGE value="淇敼閰嶇疆鏂囦欢鍚嶇О" />
+    <MESSAGE value="淇敼鏃ュ織璺緞" />
+    <MESSAGE value="閰嶇疆鏂囦欢鍚嶇О杞崲涓哄皬鍐�" />
+    <MESSAGE value="閰嶇疆鏂囦欢杞崲涓哄皬鍐�" />
+    <MESSAGE value="淇鍚嶇О" />
+    <MESSAGE value="鏂板绌哄瓧娈靛垽鏂�" />
+    <MESSAGE value="璋冩暣杩涘嚭寮傚父杩囨护 缃湪鏁版嵁娈�" />
+    <MESSAGE value="1銆佷慨鏀规煡璇㈢瓥鐣�&#10;2銆佷慨鏀瑰湴鍧�缁熻绛栫暐" />
+    <option name="LAST_COMMIT_MESSAGE" value="1銆佷慨鏀规煡璇㈢瓥鐣�&#10;2銆佷慨鏀瑰湴鍧�缁熻绛栫暐" />
   </component>
   <component name="VgoProject">
     <integration-enabled>true</integration-enabled>
     <proxy>https://goproxy.cn,direct</proxy>
   </component>
+  <component name="XDebuggerManager">
+    <watches-manager>
+      <configuration name="GoApplicationRunConfiguration">
+        <watch expression="captureInfos" />
+      </configuration>
+    </watches-manager>
+  </component>
+  <component name="antWorkspaceConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="FILTER_TARGETS" value="false" />
+  </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/go.mod">
-      <provider selected="true" editor-type-id="text-editor">
-        <state>
-          <caret column="13" selection-start-column="13" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://C:/Program Files/Go/src/time/format.go">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="203">
@@ -487,23 +585,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://C:/Program Files/Go/src/time/time.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="208">
-          <caret line="1466" column="5" selection-start-line="1466" selection-start-column="5" selection-end-line="1466" selection-end-column="5" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/rule/identityEngine.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-844">
-          <caret line="5" column="1" lean-forward="true" selection-start-line="5" selection-start-column="1" selection-end-line="5" selection-end-column="1" />
-          <folding>
-            <element signature="e#14#39#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$USER_HOME$/go/pkg/mod/gorm.io/gorm@v1.25.9/gorm.go">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="322">
@@ -513,11 +594,8 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/db/database.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="576">
-          <caret line="24" selection-start-line="24" selection-end-line="24" />
-          <folding>
-            <element signature="e#12#88#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="480">
+          <caret line="37" column="14" lean-forward="true" selection-start-line="37" selection-start-column="14" selection-end-line="37" selection-end-column="14" />
         </state>
       </provider>
     </entry>
@@ -535,114 +613,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/data/prepare.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="42">
-          <caret line="103" column="8" lean-forward="true" selection-start-line="103" selection-start-column="8" selection-end-line="103" selection-end-column="8" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cache/device.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="7" column="35" lean-forward="true" selection-start-line="7" selection-start-column="35" selection-end-line="7" selection-end-column="35" />
-          <folding>
-            <element signature="e#15#77#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/task/tool.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="504">
-          <caret line="21" column="9" selection-start-line="21" selection-start-column="9" selection-end-line="21" selection-end-column="9" />
-          <folding>
-            <element signature="e#14#41#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/db/repository.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-2">
-          <caret line="170" column="8" selection-start-line="170" selection-start-column="8" selection-end-line="170" selection-end-column="8" />
-          <folding>
-            <element signature="e#12#78#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/pubsub/esutil.git@v0.0.0-20240401091908-7a10b30099c6/EsClient.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="98">
-          <caret line="1003" column="20" selection-start-line="1003" selection-start-column="20" selection-end-line="1003" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/db/elasticScriptToId.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="82">
-          <caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
-          <folding>
-            <element signature="e#12#86#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/rule/engine.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-129">
-          <caret line="346" column="42" lean-forward="true" selection-start-line="346" selection-start-column="42" selection-end-line="346" selection-end-column="42" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/config/config.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="545">
-          <caret line="45" column="4" selection-start-line="45" selection-start-column="4" selection-end-line="45" selection-end-column="4" />
-          <folding>
-            <element signature="e#16#89#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/rule/service.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="521">
-          <caret line="56" column="31" lean-forward="true" selection-start-line="56" selection-start-column="31" selection-end-line="56" selection-end-column="31" />
-          <folding>
-            <element signature="e#14#107#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/task/engine.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="350">
-          <caret line="31" column="118" lean-forward="true" selection-start-line="31" selection-start-column="118" selection-end-line="31" selection-end-column="118" />
-          <folding>
-            <element signature="e#14#76#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/db/models.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="254">
-          <caret line="39" column="29" lean-forward="true" selection-start-line="39" selection-start-column="29" selection-end-line="39" selection-end-column="30" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/db/elastic.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="308">
-          <caret line="188" column="23" lean-forward="true" selection-start-line="188" selection-start-column="23" selection-end-line="188" selection-end-column="23" />
-          <folding>
-            <element signature="e#12#114#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/!cloud!a!i/protomsg.git@v0.0.0-20240524094225-61cfc0043e88/analysis/analysis_grpc.pb.go">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="338">
@@ -650,41 +620,172 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/api/analysisApi/server.go">
+    <entry file="file://$PROJECT_DIR$/.gitignore">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="216">
-          <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
+        <state relative-caret-position="432">
+          <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/task/service.go">
+    <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/pubsub/esutil.git@v0.0.0-20240401091908-7a10b30099c6/EsClient.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="328">
-          <caret line="81" column="5" lean-forward="true" selection-start-line="80" selection-start-column="48" selection-end-line="81" selection-end-column="5" />
+        <state relative-caret-position="28">
+          <caret line="1071" column="23" lean-forward="true" selection-start-line="1071" selection-start-column="23" selection-end-line="1071" selection-end-column="23" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/go/pkg/mod/gorm.io/gorm@v1.25.9/callbacks/interfaces.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="226">
+          <caret line="13" column="4" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/cache/device.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="269">
+          <caret line="12" column="28" lean-forward="true" selection-start-line="12" selection-start-column="28" selection-end-line="12" selection-end-column="28" />
           <folding>
-            <element signature="e#14#53#0" expanded="true" />
+            <element signature="e#15#77#0" expanded="true" />
           </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/go.mod">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="600">
+          <caret line="25" column="67" selection-start-line="25" selection-start-column="67" selection-end-line="25" selection-end-column="67" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/task/tool.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="96">
+          <caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/api/analysisApi/server.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="240">
+          <caret line="15" column="24" selection-start-line="15" selection-start-column="24" selection-end-line="15" selection-end-column="24" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/main.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-222">
-          <caret line="50" column="28" lean-forward="true" selection-start-line="50" selection-start-column="28" selection-end-line="50" selection-end-column="28" />
+        <state relative-caret-position="1128">
+          <caret line="63" column="17" selection-start-line="63" selection-start-column="17" selection-end-line="63" selection-end-column="17" />
+          <folding>
+            <element signature="e#14#333#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/config/app.yaml">
+    <entry file="file://$PROJECT_DIR$/task/engine.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
-          <caret line="21" column="21" lean-forward="true" selection-start-line="21" selection-start-column="21" selection-end-line="21" selection-end-column="21" />
+        <state relative-caret-position="304">
+          <caret line="36" column="13" selection-start-line="36" selection-start-column="13" selection-end-line="36" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
+    <entry file="file://$USER_HOME$/go/pkg/mod/gorm.io/gorm@v1.25.9/chainable_api.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="432">
-          <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
+        <state relative-caret-position="338">
+          <caret line="63" column="14" selection-start-line="63" selection-start-column="14" selection-end-line="63" selection-end-column="14" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/task/service.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-126">
+          <caret line="47" column="91" selection-start-line="47" selection-start-column="91" selection-end-line="47" selection-end-column="91" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/Program Files/Go/src/time/time.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="106">
+          <caret line="1455" column="59" selection-start-line="1455" selection-start-column="59" selection-end-line="1455" selection-end-column="59" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/db/elasticScriptToId.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="840">
+          <caret line="39" column="46" lean-forward="true" selection-start-line="39" selection-start-column="46" selection-end-line="39" selection-end-column="46" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/db/repository.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="162">
+          <caret line="105" column="5" selection-start-line="105" selection-start-column="5" selection-end-line="105" selection-end-column="5" />
+          <folding>
+            <element signature="e#12#78#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/config.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="737">
+          <caret line="46" column="48" lean-forward="true" selection-start-line="46" selection-start-column="48" selection-end-line="46" selection-end-column="48" />
+          <folding>
+            <element signature="e#16#89#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/db/elastic.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="192">
+          <caret line="29" column="70" selection-start-line="29" selection-start-column="70" selection-end-line="29" selection-end-column="70" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/rulemodelengine.yaml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="337">
+          <caret line="30" column="19" selection-start-line="30" selection-start-column="17" selection-end-line="30" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/rule/identityEngine.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="48">
+          <caret line="5" column="1" lean-forward="true" selection-start-line="5" selection-start-column="1" selection-end-line="5" selection-end-column="1" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/db/models.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="193">
+          <caret line="152" column="11" selection-start-line="152" selection-start-column="11" selection-end-line="152" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/rule/engine.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="189">
+          <caret line="8" column="4" selection-start-line="8" selection-start-column="4" selection-end-line="8" selection-end-column="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/rule/service.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="179">
+          <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/data/prepare.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="71">
+          <caret line="17" column="36" lean-forward="true" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
+          <folding>
+            <element signature="e#14#61#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
diff --git a/config/config.go b/config/config.go
index 122e4e3..f29e1cd 100644
--- a/config/config.go
+++ b/config/config.go
@@ -42,11 +42,12 @@
 }
 
 type api struct {
-	Host      string `mapstructure: "host"`
-	Port      string `mapstructure: "port"`
-	CsTimes   int    `mapstructure:"csTimes"`
-	CsHours   int    `mapstructure:"csHours"`
-	AInterval int    `mapstructure:"aInterval"`
+	Host          string `mapstructure: "host"`
+	Port          string `mapstructure: "port"`
+	TimeThreshold int    `mapstructure:"timeThreshold"`
+	CsTimes       int    `mapstructure:"csTimes"`
+	CsHours       int    `mapstructure:"csHours"`
+	AInterval     int    `mapstructure:"aInterval"`
 }
 
 var LogConf = &LogConfig{}
diff --git a/config/rulemodelengine.yaml b/config/rulemodelengine.yaml
index 25983e7..aa9cd5f 100644
--- a/config/rulemodelengine.yaml
+++ b/config/rulemodelengine.yaml
@@ -28,6 +28,7 @@
 api:
   host: 192.168.20.115
   port: 4101
+  timeThreshold: 90 #timeThreshold 鏌ヨ妗f鏃堕棿鑼冨洿锛屼负涔嬪墠timeThreshold澶╀箣鍐呯殑鏁版嵁
   csTimes: 10 #climbed stairs times 绐滄ゼ娆℃暟
   csHours: 5 #climbed stairs hours 绐滄ゼ棰勮鏃堕棿 璇sHours鏃堕棿鑼冨洿涔嬪唴
   aInterval: 3 #interval time between anomalies  杩涘嚭寮傚父闂撮殧鏃堕棿
diff --git a/data/prepare.go b/data/prepare.go
index 1d38dd2..415c0c1 100644
--- a/data/prepare.go
+++ b/data/prepare.go
@@ -2,6 +2,7 @@
 
 import (
 	"fmt"
+	"regexp"
 	"ruleModelEngine/db"
 	"time"
 )
@@ -80,13 +81,35 @@
 
 	// 鎵惧埌鍑虹幇娆℃暟鏈�澶氱殑鍑鸿鍦板潃
 	maxOutCount := 0
+	maxTotalCount := 0
 	var frequentAddress string
+	floor1AddressCount := 0
+	floor1Address := ""
 	for address, count := range outAddressCounts {
+		maxTotalCount = maxTotalCount + count
+		re, _ := regexp.Compile(`\b1F\b`)
+		if re.MatchString(address) {
+			if count > floor1AddressCount {
+				floor1Address = address
+				floor1AddressCount = count
+				continue
+			}
+		}
 		if count > maxOutCount {
 			maxOutCount = count
 			frequentAddress = address
 		}
 	}
+
+	if frequentAddress == "" && floor1Address != "" {
+		frequentAddress = floor1Address
+	}
+	if frequentAddress != "" && floor1Address != "" {
+		if (float64(floor1AddressCount)/float64(maxTotalCount))*100 > 90 {
+			frequentAddress = floor1Address
+		}
+	}
+
 	if frequentAddress == "" {
 		maxInCount := 0
 		for address, count := range inAddressCounts {
@@ -96,6 +119,9 @@
 			}
 		}
 	}
+	//fmt.Println("in address: ", inAddressCounts)
+	//fmt.Println("out address: ", outAddressCounts)
+	//fmt.Println("final address: ", frequentAddress)
 	return frequentAddress
 }
 
diff --git a/db/elastic.go b/db/elastic.go
index 2f0f9d3..2ecaa2a 100644
--- a/db/elastic.go
+++ b/db/elastic.go
@@ -338,7 +338,7 @@
 	return false, nil
 }
 
-func Query1MDataByCommunityId(communityId string, documentNumber []string, days int) ([]CaptureInfo, error) {
+func QueryByTimeThresholdDataByCommunityId(communityId string, documentNumber []string, days int) ([]CaptureInfo, error) {
 	//fmt.Println(config.Elastic.DocumentSize)
 	//fmt.Println(config.Elastic.TopHitsSize)
 	documentNumberStr := strings.Replace(strings.Trim(fmt.Sprint(documentNumber), "[]"), " ", "\",\"", -1)
diff --git a/rule/engine.go b/rule/engine.go
index 64cb3ba..ca60c2c 100644
--- a/rule/engine.go
+++ b/rule/engine.go
@@ -55,6 +55,7 @@
 				status = "Confirmed"
 			}
 		}
+
 		if status == "" {
 			continue
 		}
diff --git a/rule/service.go b/rule/service.go
index 5fac3c6..eb9fcbe 100644
--- a/rule/service.go
+++ b/rule/service.go
@@ -9,6 +9,7 @@
 	"ruleModelEngine/db"
 	"ruleModelEngine/task"
 	"strconv"
+	"time"
 )
 
 //
@@ -55,6 +56,7 @@
 			cameraIds = append(cameraIds, deviceInfo.DeviceCode)
 		}
 	}
+
 	if len(cameraIds) == 0 {
 		logger.Info("涓嶅瓨鍦ㄥ晢浣忔ゼ璁惧锛�", cameraIds)
 		return
@@ -92,7 +94,7 @@
 	}
 	fmt.Println("ruleInfo: ", ruleInfo)
 	communityIDs, err := db.GetCommunityIDs()
-	//fmt.Println("communityIDs:", communityIDs)
+	fmt.Println("communityIDs:", communityIDs)
 	if err != nil {
 		logger.Error("GetCommunityIDs Error", err)
 	}
@@ -103,18 +105,22 @@
 	//fmt.Println(labeManage)
 	for _, communityID := range communityIDs {
 		executeEnteringButNotLeaving(communityID)
+
 		//涓囧叏绀惧尯
 		//if communityID != "50010101010000001001" {
 		//	continue
 		//}
 		fmt.Println("communityID: ", communityID)
 		//continue
+		now := time.Now()
+		timeThresholdDay := now.AddDate(0, 0, -config.Api.TimeThreshold)
+		timeThresholdDayZeroTime := time.Date(timeThresholdDay.Year(), timeThresholdDay.Month(), timeThresholdDay.Day(), 0, 0, 0, 0, timeThresholdDay.Location()).Unix()
+		fmt.Println("姣斿鏃堕棿鎴筹細", timeThresholdDayZeroTime)
 		//鏌ヨ绀惧尯鍐呬汉鍛樻。妗堬紝鏂逛究鏁版嵁鏇存柊
-		personStatusList, err := db.QueryPersonStatusWithPagination(communityID, 30)
+		personStatusList, err := db.QueryPersonStatusWithPagination(communityID, timeThresholdDayZeroTime)
 		if err != nil {
 			logger.Error("QueryPersonStatusWithPagination err: ", err)
 		}
-		//
 
 		documentNumberIDS := make([]string, 0)
 		for _, personStatus := range personStatusList {
@@ -122,7 +128,7 @@
 			documentNumberIDS = append(documentNumberIDS, personStatus.DocumentNumber)
 			//涓氬姟閫昏緫
 		}
-		//fmt.Println("len(documentNumberIDS)", len(documentNumberIDS))
+		fmt.Println("绀惧尯妗f鎬绘潯鏁帮細", len(documentNumberIDS))
 		captureInfos := make([]db.CaptureInfo, 0)
 		batchSize := config.Elastic.BatchSize
 		//fmt.Println(batchSize)
@@ -133,7 +139,7 @@
 			}
 			batch := documentNumberIDS[i:end]
 			//fmt.Println("batch: ", batch)
-			batchCaptureInfos, err := db.Query1MDataByCommunityId(communityID, batch, 30)
+			batchCaptureInfos, err := db.QueryByTimeThresholdDataByCommunityId(communityID, batch, config.Api.TimeThreshold)
 			if err != nil {
 				logger.Error("Query1MDataByCommunityId Error", err)
 			}
@@ -149,7 +155,6 @@
 		fmt.Println("鍏辫鏈夋。妗堟暟鎹潯鏁颁负锛�", len(captureInfos))
 		//琛ュ叏鍒嗘瀽鎵�闇�鏁版嵁
 		for i := range captureInfos {
-
 			captureDays, overnightCount := data.CalculateCaptureDays(captureInfos[i].CaptureDetail)
 			captureInfos[i].CaptureDays = captureDays
 			captureInfos[i].OvernightStays = overnightCount
@@ -169,31 +174,38 @@
 		}
 		//fmt.Println("residentCount: ", residentCount)
 		//fmt.Println("captureInfosQ: ", captureInfos)
-
 		for _, identity := range labeManage {
 			switch identity.Name {
 			case "鏈嶅姟浜哄憳":
 				identity, attribute := CreateLinearModel(captureInfos, communityID, 2.68, identity.ValidDays, identity.Id)
+
 				errIdentity := db.UpdateDBPersonLabel(identity)
 				if errIdentity != nil {
 					logger.Error("UpdateDBPersonLabel Error", errIdentity)
 				}
+
 				captureInfos = attribute
 
 			}
 		}
+
 		identity := CreateProcessModel(captureInfos, 30, communityID, labeManage)
 		errIdentity := db.UpdateDBPersonLabel(identity)
 		if errIdentity != nil {
 			logger.Error("UpdateDBPersonLabel Error", errIdentity)
 		}
+
 		//continue
 
 		postCaptureInfos := data.ProcessData(captureInfos, personStatusList, ruleInfo, communityID)
-		/*for _, inf := range postCaptureInfos {
-			fmt.Println("inf: ", inf.DocumentNumber, inf.Status, inf.FrequentAddress, inf.LastAppearanceStatusTime)
-		}*/
-		//fmt.Println("鍏辨洿鏂版。妗堟暟锛�", len(postCaptureInfos))
+		for _, inf := range postCaptureInfos {
+			fmt.Println("---->pause prepare: capture ", inf.DocumentNumber, inf.Status, inf.FrequentAddress)
+			//return
+			//time.Sleep(time.Second * 10)
+
+			//fmt.Println("inf: ", inf.DocumentNumber, inf.Status, inf.FrequentAddress, inf.LastAppearanceStatusTime)
+		}
+		fmt.Println("鍏辨洿鏂版。妗堟暟锛�", len(postCaptureInfos))
 		//fmt.Println("----->captureInfos: ", len(captureInfos))
 		//continue
 		UpdatePersonInfoErr := db.UpdatePersonInfo(postCaptureInfos, communityID)

--
Gitblit v1.8.0