Kevin 6 年之前
当前提交
0deff1209e

+ 8 - 0
Gene_point_Service/.idea/Gene_point_Service.iml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 4 - 0
Gene_point_Service/.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
+</project>

+ 6 - 0
Gene_point_Service/.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+</project>

+ 8 - 0
Gene_point_Service/.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/Gene_point_Service.iml" filepath="$PROJECT_DIR$/.idea/Gene_point_Service.iml" />
+    </modules>
+  </component>
+</project>

+ 542 - 0
Gene_point_Service/.idea/workspace.xml

@@ -0,0 +1,542 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="83c812bd-fdcd-4344-b866-5ecaac02b490" name="Default Changelist" comment="" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FavoritesManager">
+    <favorites_list name="Gene_point_Service" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="4">
+              <caret line="7" column="8" lean-forward="true" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>interrupt</find>
+      <find>ModifyTaskStatusCode</find>
+    </findStrings>
+  </component>
+  <component name="GOROOT" path="D:\Development\GO" />
+  <component name="GoLibraries">
+    <option name="urls">
+      <list>
+        <option value="file://E:/DASHOO/common/base_dashoo_common" />
+      </list>
+    </option>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/main.go" />
+        <option value="$PROJECT_DIR$/controllers/base.go" />
+        <option value="$PROJECT_DIR$/business/converseService/converseService.go" />
+        <option value="$PROJECT_DIR$/controllers/converse/converse.go" />
+        <option value="$PROJECT_DIR$/src/api/controllers/converse/converse.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse_test.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/base.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/routers/router.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="1">
+    <option name="x" value="1913" />
+    <option name="width" value="2572" />
+    <option name="height" value="1047" />
+  </component>
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="dashoo.cn" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="dashoo.cn" type="462c0819:PsiDirectoryNode" />
+              <item name="api" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="dashoo.cn" type="462c0819:PsiDirectoryNode" />
+              <item name="api" type="462c0819:PsiDirectoryNode" />
+              <item name="conf" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+              <item name="GOPATH &lt;Gene_point_Service&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+              <item name="GOPATH &lt;Gene_point_Service&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+              <item name="GOPATH &lt;Gene_point_Service&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+              <item name="GOPATH &lt;Gene_point_Service&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="dashoo.cn" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
+              <item name="GOPATH &lt;Gene_point_Service&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="dashoo.cn" type="462c0819:PsiDirectoryNode" />
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+      <pane id="Scope" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <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="false" />
+    <property name="go.gopath.indexing.explicitly.defined" value="true" />
+    <property name="go.sdk.automatically.set" value="true" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/src/dashoo.cn/api" />
+    <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="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api\conf" />
+      <recent name="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api\controllers" />
+      <recent name="E:\DASHOO2\Gene_point_Service\controllers" />
+    </key>
+  </component>
+  <component name="RunDashboard">
+    <option name="ruleStates">
+      <list>
+        <RuleState>
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+        </RuleState>
+        <RuleState>
+          <option name="name" value="StatusDashboardGroupingRule" />
+        </RuleState>
+      </list>
+    </option>
+  </component>
+  <component name="RunManager" selected="Go Build.go build dashoo.cn/api">
+    <configuration name="go build api/" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
+      <module name="Gene_point_Service" />
+      <working_directory value="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api" />
+      <go_parameters value="-i" />
+      <kind value="DIRECTORY" />
+      <filePath value="$PROJECT_DIR$/" />
+      <directory value="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api" />
+      <method v="2" />
+    </configuration>
+    <configuration name="go build dashoo.cn/api" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
+      <module name="Gene_point_Service" />
+      <working_directory value="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api" />
+      <kind value="DIRECTORY" />
+      <filePath value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
+      <directory value="E:\DASHOO2\Gene_point_Service\src\dashoo.cn\api" />
+      <method v="2" />
+    </configuration>
+    <list>
+      <item itemvalue="Go Build.go build api/" />
+      <item itemvalue="Go Build.go build dashoo.cn/api" />
+    </list>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Go Build.go build dashoo.cn/api" />
+      </list>
+    </recent_temporary>
+  </component>
+  <component name="TodoView">
+    <todo-panel id="selected-file">
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+    <todo-panel id="all">
+      <are-packages-shown value="true" />
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="1913" y="0" width="2572" height="1047" extended-state="1" />
+    <layout>
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49766356" visible="true" weight="0.14820717" />
+      <window_info id="Structure" order="1" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
+      <window_info id="Favorites" order="2" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49960256" weight="0.3179669" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.61915886" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.96378505" />
+      <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" weight="0.32943925" />
+      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Database Changes" order="8" />
+      <window_info anchor="bottom" id="Version Control" order="9" weight="0.3289941" />
+      <window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49519232" weight="0.2566168" />
+      <window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.5048077" side_tool="true" weight="0.26359338" />
+      <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="Database" order="3" weight="0.32932693" />
+    </layout>
+    <layout-to-restore>
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4982639" visible="true" weight="0.14558473" />
+      <window_info id="Structure" order="1" sideWeight="0.5017361" side_tool="true" weight="0.30381805" />
+      <window_info id="Favorites" order="2" side_tool="true" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49960256" weight="0.3179669" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.32947975" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.66936415" />
+      <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="Database Changes" order="8" />
+      <window_info anchor="bottom" id="Version Control" order="9" weight="0.3289941" />
+      <window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49519232" weight="0.2566168" />
+      <window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.5048077" side_tool="true" weight="0.26359338" />
+      <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="Database" order="3" weight="0.32932693" />
+    </layout-to-restore>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="1" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/business/converseService/converseService_test.go" />
+    <entry file="file://$PROJECT_DIR$/business/converseService/converseService.go" />
+    <entry file="file://$PROJECT_DIR$/controllers/base.go" />
+    <entry file="file://$PROJECT_DIR$/controllers/converse/converse.go" />
+    <entry file="file://$PROJECT_DIR$/business/converseService/converse.go" />
+    <entry file="file://$PROJECT_DIR$/src/api/main.go" />
+    <entry file="file://$PROJECT_DIR$/src/api/controllers/converse/converse.go" />
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService_test.go" />
+    <entry file="file://E:/DASHOO/base_go/src/github.com/go-xorm/xorm/session_insert.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-4357">
+          <caret line="58" column="6" selection-start-line="58" selection-start-column="6" selection-end-line="58" selection-end-column="6" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/mydb/logsinfostruct.go" />
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/mydb/mySessionBase.go" />
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/mydb/myServiceBase.go" />
+    <entry file="file://D:/Development/GO/src/builtin/builtin.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="134">
+          <caret line="70" column="5" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/go-xorm/core/dialect.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="249">
+          <caret line="28" column="20" lean-forward="true" selection-start-line="28" selection-start-column="20" selection-end-line="28" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/go-xorm/xorm/engine.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="249">
+          <caret line="29" column="19" selection-start-line="29" selection-start-column="19" selection-end-line="29" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/dbEngine.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-276">
+          <caret line="18" column="4" selection-start-line="18" selection-start-column="4" selection-end-line="18" selection-end-column="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/astaxie/beego/controller.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="686">
+          <caret line="87" column="5" selection-start-line="87" selection-start-column="5" selection-end-line="87" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-171" />
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse_test.go" />
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/db/sessionBase.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="23">
+          <caret line="50" column="5" selection-start-line="50" selection-start-column="5" selection-end-line="50" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/db/serviceBase.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="23">
+          <caret line="29" column="5" selection-start-line="29" selection-start-column="5" selection-end-line="29" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/Unknwon/goconfig/read.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="229" column="32" selection-start-line="229" selection-start-column="32" selection-end-line="229" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/file.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="150">
+          <caret line="273" selection-start-line="273" selection-end-line="273" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/file_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="288">
+          <caret line="169" selection-start-line="169" selection-end-line="169" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/sync/atomic/value.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="273">
+          <caret line="32" selection-start-line="32" selection-end-line="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/internal/testlog/log.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="65" selection-start-line="65" selection-end-line="65" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/sync/atomic/asm.s">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="241">
+          <caret line="84" selection-start-line="84" selection-end-line="84" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/runtime/atomic_pointer.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="249">
+          <caret line="51" selection-start-line="51" selection-end-line="51" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/sync/mutex.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="148">
+          <caret line="195" selection-start-line="195" selection-end-line="195" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/syscall/dll_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="125">
+          <caret line="318" selection-start-line="318" selection-end-line="318" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/runtime/syscall_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="318">
+          <caret line="184" selection-start-line="184" selection-end-line="184" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/syscall/zsyscall_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="368">
+          <caret line="304" selection-start-line="304" selection-end-line="304" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/error_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="106">
+          <caret line="19" selection-start-line="19" selection-end-line="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/error.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="138">
+          <caret line="75" selection-start-line="75" selection-end-line="75" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/astaxie/beego/config/fake.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="244">
+          <caret line="131" selection-start-line="131" selection-end-line="131" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/runtime/proc.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="138">
+          <caret line="199" selection-start-line="199" selection-end-line="199" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/astaxie/beego/parser.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="192">
+          <caret line="76" selection-start-line="76" selection-end-line="76" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/astaxie/beego/config.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="238">
+          <caret line="152" selection-start-line="152" selection-end-line="152" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/astaxie/beego/utils/file.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="180">
+          <caret line="40" selection-start-line="40" selection-end-line="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/Unknwon/com/file.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="267">
+          <caret line="143" selection-start-line="143" selection-end-line="143" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/stat.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="276">
+          <caret line="12" selection-start-line="12" selection-end-line="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/os/stat_windows.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="331">
+          <caret line="134" column="10" selection-start-line="134" selection-start-column="4" selection-end-line="134" selection-end-column="10" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/base.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="161">
+          <caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="117">
+          <caret line="385" column="19" lean-forward="true" selection-start-line="385" selection-start-column="19" selection-end-line="385" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="754">
+          <caret line="125" column="16" selection-start-line="125" selection-start-column="16" selection-end-line="125" selection-end-column="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/conf/auth_model.conf">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/conf/app.conf">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="759">
+          <caret line="33" column="15" selection-start-line="33" selection-start-column="15" selection-end-line="33" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/common/base_dashoo_common/src/dashoo.cn/utils/utils.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="115">
+          <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/routers/router.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="437">
+          <caret line="23" column="47" selection-start-line="23" selection-start-column="47" selection-end-line="23" selection-end-column="47" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="532">
+          <caret line="76" column="11" selection-start-line="76" selection-start-column="11" selection-end-line="76" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4">
+          <caret line="7" column="8" lean-forward="true" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>

+ 8 - 0
Gene_point_Service/src/dashoo.cn/api/.idea/Gene_point_Service.iml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 4 - 0
Gene_point_Service/src/dashoo.cn/api/.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
+</project>

+ 6 - 0
Gene_point_Service/src/dashoo.cn/api/.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+</project>

+ 8 - 0
Gene_point_Service/src/dashoo.cn/api/.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/Gene_point_Service.iml" filepath="$PROJECT_DIR$/.idea/Gene_point_Service.iml" />
+    </modules>
+  </component>
+</project>

+ 252 - 0
Gene_point_Service/src/dashoo.cn/api/.idea/workspace.xml

@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="83c812bd-fdcd-4344-b866-5ecaac02b490" name="Default Changelist" comment="" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf>
+      <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="-1086">
+              <caret line="31" column="43" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="43" />
+              <folding>
+                <element signature="e#14#178#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/controllers/converse/converse.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="69">
+              <caret line="3" column="13" lean-forward="true" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="13" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/conf/app.conf">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-425" />
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/business/converseService/converse.go">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/business/converseService/converseService_test.go">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/business/converseService/converseService.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-138">
+              <caret line="24" column="10" selection-start-line="24" selection-start-column="10" selection-end-line="24" selection-end-column="10" />
+              <folding>
+                <element signature="e#25#148#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/controllers/base.go">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="23">
+              <caret line="11" selection-start-line="11" selection-end-line="11" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="GOROOT" path="D:\Development\GO" />
+  <component name="GoLibraries">
+    <option name="urls">
+      <list>
+        <option value="file://E:/DASHOO/common/base_dashoo_common" />
+        <option value="file://$PROJECT_DIR$" />
+      </list>
+    </option>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/main.go" />
+        <option value="$PROJECT_DIR$/controllers/base.go" />
+        <option value="$PROJECT_DIR$/business/converseService/converseService.go" />
+        <option value="$PROJECT_DIR$/controllers/converse/converse.go" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="3207" />
+    <option name="y" value="35" />
+    <option name="width" value="864" />
+    <option name="height" value="464" />
+  </component>
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="Scope" />
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="business" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="business" type="462c0819:PsiDirectoryNode" />
+              <item name="converseService" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="Gene_point_Service" type="b2602c69:ProjectViewProjectNode" />
+              <item name="Gene_point_Service" type="462c0819:PsiDirectoryNode" />
+              <item name="mydb" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <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="go.sdk.automatically.set" value="true" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <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="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="E:\DASHOO2\Gene_point_Service\controllers" />
+    </key>
+  </component>
+  <component name="RunDashboard">
+    <option name="ruleStates">
+      <list>
+        <RuleState>
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+        </RuleState>
+        <RuleState>
+          <option name="name" value="StatusDashboardGroupingRule" />
+        </RuleState>
+      </list>
+    </option>
+  </component>
+  <component name="RunManager">
+    <configuration name="go build Gene_point_Service/" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
+      <module name="Gene_point_Service" />
+      <working_directory value="$PROJECT_DIR$/" />
+      <go_parameters value="-i" />
+      <kind value="DIRECTORY" />
+      <filePath value="$PROJECT_DIR$/" />
+      <directory value="E:\DASHOO2\Gene_point_Service" />
+      <method v="2" />
+    </configuration>
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="1912" y="-8" width="2576" height="1056" extended-state="6" />
+    <editor active="true" />
+    <layout>
+      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.4982639" visible="true" weight="0.24303898" />
+      <window_info id="Structure" order="1" sideWeight="0.5017361" side_tool="true" weight="0.30381805" />
+      <window_info id="Favorites" order="2" side_tool="true" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49960256" weight="0.3179669" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.3305785" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.24793388" />
+      <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="Database Changes" order="8" />
+      <window_info anchor="bottom" id="Version Control" order="9" weight="0.3289941" />
+      <window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49519232" weight="0.2566168" />
+      <window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.5048077" side_tool="true" weight="0.26359338" />
+      <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="Database" order="3" weight="0.32932693" />
+    </layout>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="1" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/main_test.go">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/main.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-1086">
+          <caret line="31" column="43" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="43" />
+          <folding>
+            <element signature="e#14#178#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/conf/app.conf">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-425" />
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/business/converseService/converseService_test.go">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/business/converseService/converseService.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-138">
+          <caret line="24" column="10" selection-start-line="24" selection-start-column="10" selection-end-line="24" selection-end-column="10" />
+          <folding>
+            <element signature="e#25#148#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/controllers/base.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="23">
+          <caret line="11" selection-start-line="11" selection-end-line="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/controllers/converse/converse.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="69">
+          <caret line="3" column="13" lean-forward="true" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/business/converseService/converse.go">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+  </component>
+</project>

+ 129 - 0
Gene_point_Service/src/dashoo.cn/api/business/converseService/converse.go

@@ -0,0 +1,129 @@
+package converseService
+
+type RequestEntity struct {
+	Request string      `json:"request"`
+	Time    string      `json:"time"`
+	Data    RequestData `json:"data"`
+}
+
+type ResponseEntity struct {
+	Response string       `json:"response"`
+	Result   int 		  `json:"result"`
+	Time     string       `json:"time"`
+	Data     ResponseData `json:"data,omitempty"`
+}
+
+type RequestData struct {
+	Type    string `json:"type,omitempty"`
+	Key     string `json:"key,omitempty"`
+	Client  string `json:"client,omitempty"`
+	Status  int    `json:"status,omitempty"`
+	Rack_id string `json:"rack_id,omitempty"`
+	Tube_id string `json:"tube_id,omitempty"`
+	Task_id        string      `json:"task_id,omitempty"`
+	Task_data      interface{}    `json:"task_data,omitempty"`
+	List           []interface{} `json:"list,omitempty"`
+	Operation_mode string      `json:"operation_mode,omitempty"`
+	Cu    int `json:"cu,omitempty"`
+	Ee    int `json:"ee,omitempty"`
+	Ltu   int `json:"ltu,omitempty"`
+	Group int `json:"group,omitempty"`
+	Unit  int `json:"unit,omitempty"`
+	Pos   int `json:"pos,omitempty"`
+}
+
+type ResponseData struct {
+	Type           string        `json:"type,omitempty"`
+	Status         int           `json:"status,omitempty"`
+	Key            string        `json:"key,omitempty"`
+	Task_id        string        `json:"task_id,omitempty"`
+	Task_msg       []interface{} `json:"task_msg,omitempty"`
+	Causes         []Cause   	 `json:"causes,omitempty"`
+	Is_end         bool          `json:"is_end,omitempty"`
+	Execution_time int           `json:"execution_time,omitempty"`
+	Exceptions     []interface{} `json:"exceptions,omitempty"`
+	Actual_data    []interface{} `json:"actual_data,omitempty"`
+	Abnormal_data  []interface{} `json:"abnormal_data,omitempty"`
+	List           []interface{} `json:"list,omitempty"`
+}
+
+type Source struct {
+	Cu  int `json:"cu,omitempty"`
+	Ee  int `json:"ee,omitempty"`
+	Pos int `json:"pos,omitempty"`
+	Rack_id string `json:"rack_id,omitempty"`
+}
+
+type Target struct {
+	Cu    int `json:"cu,omitempty"`
+	Ltu   int `json:"ltu,omitempty"`
+	Group int `json:"group,omitempty"`
+	Unit  int `json:"unit,omitempty"`
+	Pos   int `json:"pos,omitempty"`
+	Ee    int `json:"ee,omitempty"`
+	Rack_id string `json:"rack_id,omitempty"`
+}
+
+type Hierarchy struct {
+	Cu    int `json:"cu"`
+	Ee    int `json:"ee"`
+	Ltu   int `json:"ltu"`
+	Group int `json:"group"`
+	Unit  int `json:"unit"`
+	Pos   int `json:"pos"`
+}
+
+type Tube struct {
+	No int    `json:"no,omitempty"`
+	Id string `json:"id,omitempty"`
+	T_no int	`json:"t_no,omitempty"`
+	S_no int	`json:"s_no,omitempty"`
+}
+
+type Single struct {
+	Rack    int    `json:"rack,omitempty"`
+	Tube    int    `json:"tube,omitempty"`
+	Rack_id string `json:"rack_id,omitempty"`
+	Source  Source `json:"source,omitempty"`
+	Target  Target `json:"target,omitempty"`
+	Tubes   []Tube `json:"tubes"`
+}
+
+type Cause struct {
+	Cu 		int		`json:"cu,omitempty"`
+	Reason	int		`json:"reason,omitempty"`
+}
+
+type Sample_Storage_Task struct {
+	Id 			int
+	Task_id 	string
+	Task_type 	int
+	EquipmentId int
+	E_Row		int
+	E_Col		int
+	Ltu			int
+	Group		int
+	ShelfId		int
+	S_Row		int
+	S_Col		int
+	S_X			int
+	S_Y			int
+	BoxId 		string
+	B_Row		int
+	B_Col		int
+	B_X			int
+	B_Y			int
+	BoxType		int
+	BarCode 	string
+	TubeType	int
+	Status 		int
+	Position 	string
+	No			int
+	Unit 		int
+	Pos			int
+	StatusCode  int
+	OperaMode   string
+	Exception 	string	 `xorm:"VARCHAR(512)"`
+	Remark 		string
+
+}

+ 534 - 0
Gene_point_Service/src/dashoo.cn/api/business/converseService/converseService.go

@@ -0,0 +1,534 @@
+package converseService
+
+import (
+	"crypto/md5"
+	"fmt"
+	"github.com/go-xorm/xorm"
+	"log"
+	"strconv"
+	"strings"
+	"time"
+	. "dashoo.cn/utils/db"
+)
+
+const CU = 1
+const EE = 1
+const POS = 1
+const LTU = 1
+const GROUP = 1
+
+type ConverseService struct {
+	ServiceBase
+}
+
+type ConverseSessionService struct {
+	SessionBase
+}
+
+func GetConverseService(xormEngine *xorm.Engine) *ConverseService{
+	s := new(ConverseService)
+	s.DBE = xormEngine
+	return s
+}
+
+func GetConverseSessionService(session *xorm.Session) *ConverseSessionService{
+	s := new(ConverseSessionService)
+	s.Session = session
+	return s
+}
+
+//建立会话
+func (this *ConverseService) GetSessionSetupRequest(utc string) *RequestEntity{
+	var request = "session_setup"
+	var reqData RequestData
+	reqData.Key = this.GetKeyBaseOnTime(utc)
+	reqData.Client = "lims"
+	var entity = this.GetRequestEntity(request,utc,reqData)
+	return entity
+}
+
+func (this *ConverseService) GetRandomTaskId() string{
+	t := time.Now().Unix()
+	task_id := "TK"+ strconv.FormatInt(t,10)
+	return task_id
+}
+
+//生成请求报文
+func (this *ConverseService) GetRequestEntity(request string, utc string, data RequestData) *RequestEntity{
+	var entity RequestEntity
+	entity.Request = request
+	entity.Time = utc
+	entity.Data = data
+	return &entity
+}
+
+//获取key
+func (this *ConverseService) GetKeyBaseOnTime(utc string) string{
+	privateKey := "ZGlzdHJp23Yn4V06b3I6OGQ5NjllZWY2ZWNhZDNjMjlhM2E2MjkyODBlNjg2Y2YwYzNmNWQ1YTg2YWZmM2Nh3MTIwMjB3454jOTIzYWRjNmM5M4g"
+	unencoded := privateKey + utc
+	byte := md5.Sum([]byte(unencoded))
+	encode := fmt.Sprintf("%x", byte)
+	resultKey := strings.ToUpper(encode)
+	return resultKey
+}
+
+//查询库存冻存盒信息
+func (this *ConverseService) CheckStockRackInfo(cu int, rack_id string, utc string) *RequestEntity{
+	var request = "stock_rack"
+	var data RequestData
+	data.Rack_id = rack_id
+	data.Cu = cu
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+}
+
+//查询库存冻存管信息
+func (this *ConverseService) CheckStockTubeInfo(cu int, rack_id, tube_id, utc string) *RequestEntity{
+	var request = "stock_rack_tube"
+	var data RequestData
+	data.Rack_id = rack_id
+	data.Tube_id = tube_id
+	data.Cu = cu
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+}
+
+
+//冻存盒入库
+func (this *ConverseService) StoreRack(utc string, list []Single) *RequestEntity{
+	var request = "rack_storing"
+	var data RequestData
+	data.Task_id = this.GetRandomTaskId()
+	//data.Task_id = "001Acs5601"
+	data.Type = "begin"
+	data.Task_data = list
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+
+}
+
+//冻存盒出库
+func (this *ConverseService) RetrieveRack(utc string, list[]Single) *RequestEntity{
+	var request = "rack_retrieving"
+	var data RequestData
+	data.Type = "begin"
+	data.Task_id = this.GetRandomTaskId()
+	// data.Task_id ="A11050WD054799"
+	data.Task_data = list
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+}
+
+//冻存管入库
+func (this *ConverseService) StoreTube(utc string, mode string, list []Single) *RequestEntity{
+	var request = "tube_storing"
+	var data RequestData
+	data.Type = "begin"
+	data.Task_id = this.GetRandomTaskId()
+	//data.Task_id = "QW5982"
+	data.Operation_mode = mode
+	data.Task_data = list
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+}
+
+//冻存管出库
+func (this *ConverseService) RetrieveTube(utc string, single Single) *RequestEntity{
+	var request = "tube_retrieving"
+	var data RequestData
+	data.Type = "begin"
+	data.Task_id = this.GetRandomTaskId()
+	data.Task_data = single
+	entity := this.GetRequestEntity(request,utc, data)
+	return entity
+}
+
+//任务撤销
+func (this *ConverseService) CancelTast(utc string, task_id string) *RequestEntity{
+	var request = "task_change"
+	var data RequestData
+	data.Task_id = task_id
+	data.Status = 1
+	entity := this.GetRequestEntity(request,utc,data)
+	return entity
+}
+
+//扫描新任务
+func (this *ConverseService) ScanNewTaskDetail() []Sample_Storage_Task{
+	var tasks []Sample_Storage_Task
+	where := "statuscode = 0"
+	this.GetEntitysByWhere("sample_storage_task", where, &tasks)
+	return tasks
+}
+
+//新任务数量
+func (this *ConverseService) GetNewTaskBasic () []Sample_Storage_Task{
+	//var count64 int64
+	var tasks []Sample_Storage_Task
+	//sql := "SELECT COUNT(DISTINCT(task_id)) FROM sample_storage_task WHERE status = 0"
+	sql := "SELECT task_id, task_type, statuscode FROM sample_storage_task GROUP BY task_id, task_type HAVING statuscode = 0"
+	err := this.DBE.SQL(sql).Find(&tasks)
+	if err != nil {
+		log.Println(err)
+	}
+	//if len(resultsSlice) > 0 {
+	//	results := resultsSlice[0]
+	//	for _, value := range results {
+	//		count64, _ = strconv.ParseInt(string(value), 10, 64)
+	//		//LogError(err)
+	//		break
+	//	}
+	//}
+	//intSTr := strconv.FormatInt(count64,10)
+	//count,_ := strconv.Atoi(intSTr)
+
+	return tasks
+}
+
+//冻存管位置格式转换
+func TransPositionToNo(boxType int, position string) int{
+	co := strings.Split(position,";")
+	x, _ := strconv.Atoi(co[0])
+	y, _ := strconv.Atoi(co[1])
+	var no int
+	switch boxType {
+	case 101,102,103:
+		no = (x-1)*9+y
+		break
+	case 0 :
+		no = (x-1)*10+y
+	}
+	return no
+}
+
+//根据任务类型获取requestName
+func (this *ConverseService)GenerateRequestEntity(taskType int, task_id string) *RequestEntity{
+	var requestName string
+	switch taskType {
+	case 1:
+		requestName = "rack_storing"
+		break
+	case 2:
+		requestName = "rack_retrieving"
+		break
+	case 3:
+		requestName = "tube_storing"
+		break
+	case 4:
+		requestName = "tube_retrieving"
+		break
+	case 5:
+		requestName = "stock_rack"
+		break
+	case 6:
+		requestName = "stock_rack_tube"
+		break
+	case 7:
+		requestName = "task_change"
+	}
+	utc := time.Now().UTC().Format(time.RFC3339)
+	var data RequestData
+	if requestName != "stock_rack" && requestName != "stock_rack_tube" {
+		data.Task_id = task_id
+		data.Type = "begin"
+	}
+	entity := this.GetRequestEntity(requestName,utc,data)
+	return entity
+}
+
+func (this *ConverseService) HandleTaskDetail(taskType int , entity *RequestEntity, detail *Sample_Storage_Task){
+	switch taskType {
+	case 1:
+		handleRackStore(entity, detail)
+		break
+	case 2:
+		handleRackRetrieve(entity,detail)
+		break
+	case 3:
+		handleTubeStore(entity,detail)
+		break
+	case 4:
+		handleTubeRetrieve(entity,detail)
+		break
+	case 5:
+		handleQueryRack(entity,detail)
+		break
+	case 6:
+		handleQueryTube(entity,detail)
+		break
+	case 7:
+		handleTaskChange(entity,detail)
+	}
+}
+
+//处理冻存盒入库任务信息
+func handleRackStore (entity *RequestEntity, detail *Sample_Storage_Task) {
+	var ones = make([]Single,0)
+	var exist bool
+
+	if entity.Data.Task_data != nil {
+		ones = entity.Data.Task_data.([]Single)
+		for idx,value := range ones{
+			if value.Rack_id == detail.BoxId {
+				var tube Tube
+				tube.Id = detail.BarCode
+				ones[idx].Tubes = append(ones[idx].Tubes,tube)
+				exist = true
+			}
+		}
+	}
+
+	if !exist {
+		var one Single
+		one.Rack = detail.BoxType
+		one.Tube = detail.TubeType
+		one.Rack_id = detail.BoxId
+		one.Source.Cu = CU
+		one.Source.Ee = EE
+		one.Source.Pos = POS
+		one.Target.Cu = CU
+		one.Target.Unit = detail.Unit
+		one.Target.Pos = detail.Pos
+		one.Target.Ltu = 1
+		one.Target.Group = 1
+		if detail.BarCode != "" {
+			var tube Tube
+			tube.Id = detail.BarCode
+			one.Tubes = append(one.Tubes, tube)
+		}else {
+			one.Tubes = make([]Tube,0)  //tubes不能为空, 否则Genepoint系统报错
+		}
+		ones = append(ones, one)
+	}
+	entity.Data.Task_data = ones
+}
+
+//处理冻存盒出库任务信息
+func handleRackRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
+	var ones []Single
+	var one Single
+	one.Tubes = make([]Tube,0)	//tubes不能为空, 否则Genepoint系统报错
+
+	if entity.Data.Task_data != nil {
+	//	ones = make([]Single, 0)
+	//}else{
+		ones = entity.Data.Task_data.([]Single)
+	}
+	one.Rack_id = detail.BoxId
+	one.Target.Cu = CU
+	one.Target.Ee = EE
+	one.Target.Pos =POS
+	ones = append(ones, one)
+	entity.Data.Task_data = ones
+}
+
+
+//处理冻存管入库任务信息
+func handleTubeStore (entity *RequestEntity, detail *Sample_Storage_Task){
+	var ones []Single
+	var exist bool
+	if entity.Data.Operation_mode == "" {
+		entity.Data.Operation_mode = detail.OperaMode
+	}
+
+	if entity.Data.Task_data != nil {
+		ones = entity.Data.Task_data.([]Single)
+		for idx,value := range ones {
+			if value.Target.Rack_id == detail.BoxId {
+				var tube Tube
+				if detail.OperaMode != "auto" {
+					tube.T_no = TransPositionToNo(detail.BoxType,detail.Position)
+					//实际采用,暂时注释掉 tube.T_no = detail.No
+				}
+				tube.Id = detail.BarCode
+				ones[idx].Tubes = append(ones[idx].Tubes,tube)
+				//value.Tubes = append(value.Tubes,tube)
+				exist = true
+				goto label
+			}
+		}
+	}
+
+	if !exist {
+		var one Single
+		one.Rack = 101
+		one.Tube = 201
+		//one.Rack = detail.BoxType    //样本库系统,没有添加该字段信息逻辑,临时注释
+		//one.Tube = detail.TubeType   //样本库系统,没有添加该字段信息逻辑,临时注释
+		one.Source.Cu = CU
+		one.Source.Ee = EE
+		one.Source.Pos = POS
+		var tube Tube
+		if detail.OperaMode != "auto" {
+			one.Target.Cu = CU
+			one.Target.Ltu = detail.Ltu
+			one.Target.Group = detail.Group
+			one.Target.Unit = detail.Unit
+			one.Target.Pos = detail.Pos
+			one.Target.Rack_id = detail.BoxId
+			//tube.T_no = TransPositionToNo(detail.BoxType,detail.Position)
+			tube.T_no = detail.No //实际采用,暂时注释掉
+		}
+		tube.Id = detail.BarCode
+		one.Tubes = append(one.Tubes, tube)
+		ones = append(ones, one)
+	}
+	label:
+	entity.Data.Task_data = ones
+}
+
+//处理冻存管出库任务信息
+func handleTubeRetrieve(entity *RequestEntity, detail *Sample_Storage_Task){
+	var one Single
+	var exist bool
+	if entity.Data.Task_data != nil {
+		one = entity.Data.Task_data.(Single)
+		exist = true
+	}
+
+	if !exist {
+		one.Target.Cu = CU
+		one.Target.Ee = EE
+		one.Target.Pos =POS
+	}
+	var tube Tube
+	tube.Id = detail.BarCode
+	one.Tubes = append(one.Tubes,tube)
+	entity.Data.Task_data = one
+}
+
+//任务撤销
+func handleTaskChange(entity *RequestEntity, detail *Sample_Storage_Task){
+	entity.Data.Status = detail.Status
+}
+
+//查询冻存盒库存信息
+func handleQueryRack(entity *RequestEntity, detail *Sample_Storage_Task){
+	entity.Data.Cu = detail.EquipmentId
+	entity.Data.Rack_id = detail.BoxId
+}
+
+//查询冻存管库存信息
+func handleQueryTube(entity *RequestEntity, detail *Sample_Storage_Task){
+	entity.Data.Rack_id = detail.BoxId
+	entity.Data.Tube_id = detail.BarCode
+}
+
+
+//修改任务表状态码
+func (this *ConverseService) TaskStatusModify(statusCode int, task_id string)  error{
+	sql := "UPDATE sample_storage_task SET statuscode = '" + strconv.Itoa(statusCode) + "' WHERE task_id = '" + task_id + "'"
+	fmt.Println(sql)
+	_,err := this.DBE.Exec(sql)
+	return err
+}
+
+// 修改出入库单状态
+func (this *ConverseService) SampleApplyStatusModify(statusCode int, entryNo string) error{
+	sql := "UPDATE samplesapply SET applystatus = '" + strconv.Itoa(statusCode) + "' WHERE entryno = '" + entryNo + "'"
+	_,err := this.DBE.Exec(sql)
+	return err
+}
+
+//修改任务完成状态
+//func (this *ConverseService) ModifyTaskStatusCode(taskId string, code int){
+//	sql := "UPDATE sample_storage_task SET statuscode = '" + string(code) + "' WHERE task_id = '" + taskId + "'"
+//	_,err := this.DBE.Exec(sql)
+//	if err != nil {
+//		log.Println(err)
+//	}
+//}
+
+//获取任务原始信息
+func (this *ConverseService) GetBasicTaskInfo(task_id string) ([]Sample_Storage_Task, error){
+	sql := `SELECT
+				d.EquipmentId,
+				e.RowNum e_row,
+				e.ColumnNum e_col,
+				d.ShelfId,
+				s.XStation s_x,
+				s.YStation s_y,
+				s.RowNum s_row,
+				s.ColumnNum s_col,
+				d.BoxId,
+				b.XStation b_x,
+				b.YStation b_y,
+				b.RowNum b_row,
+				b.ColumnNum b_col,
+				d.Position,
+				d.BarCode,
+				a.EntryNo task_id
+			FROM
+				samplesapplydetail d
+				JOIN equipment e ON d.EquipmentId = e.Id
+				JOIN shelf s ON d.ShelfId = s.Id
+				JOIN box b ON d.BoxId = b.Id
+				JOIN samplesapply a ON d.ParentId = a.Id 
+			WHERE
+				a.EntryNo = '` + task_id + `' AND a.ApplyStatus = '2'`
+	var list []Sample_Storage_Task
+	err := this.DBE.SQL(sql).Find(&list)
+	if err != nil {
+		return nil,err
+	}
+	return list,err
+}
+
+//原始位置信息转换
+func (this *ConverseService) TransferPosition(one *Sample_Storage_Task) {
+	one.Unit = (one.S_Y-1)*one.E_Col + one.S_X
+	one.Pos = (one.B_Y-1)*one.S_Col + one.B_X
+	if one.Position != "" {
+		coord := strings.Split(one.Position, ";")
+		x, _ := strconv.Atoi(coord[0])
+		y, _ := strconv.Atoi(coord[1])
+		one.No = (y-1)*one.B_Col + x
+	}
+	one.Ltu = LTU
+	one.Group = GROUP
+}
+
+//处理任务原始信息
+func (this *ConverseService) HandleTaskInfo(list []Sample_Storage_Task, applyType string) *[]Sample_Storage_Task{
+	var resultList []Sample_Storage_Task
+	for _, value := range list {
+		this.AddTaskType(&value, applyType)
+		this.TransferPosition(&value)
+		resultList = append(resultList, value)
+	}
+	return &resultList
+}
+
+//添加任务类型
+func (this *ConverseService) AddTaskType(one *Sample_Storage_Task, applyType string){
+	if  applyType == "1" {
+		one.Task_type = 3	//冻存管入库
+		one.OperaMode = "manua"
+	}else if applyType == "2" {
+		one.Task_type = 4	//冻存管出库
+	}
+}
+
+//保存异常信息
+func (this *ConverseService) SaveExcepMsg(tableName, msg,taskId string) error{
+	sql := "UPDATE " + tableName+ " SET exception = '" + msg + "' WHERE task_id = '" + taskId + "'"
+	_,err := this.DBE.Exec(sql)
+	return err
+}
+
+//根据条件删除数据,不记录日志
+func (this *ConverseService) DeleteEntityBytbl(tablename string, where string) (err error) {
+	if where == "" {
+		where = "1=2"
+	}
+	sql := `delete from ` + tablename + ` where ` + where
+	_, err = this.DBE.Exec(sql)
+	return
+}
+
+//样本库分表
+func (s *ConverseSessionService) InsertEntityBytbl(tablename string, entity interface{}) (affected int64, err error) {
+	affected, err = s.Session.Table(tablename).Insert(entity)
+	LogError(err)
+	return
+}

+ 48 - 0
Gene_point_Service/src/dashoo.cn/api/conf/app.conf

@@ -0,0 +1,48 @@
+appname = dqm_api
+httpport = 9635
+runmode = dev
+#runmode = prod
+autorender = false
+copyrequestbody = true
+EnableDocs = true
+
+[server]
+apiurl=http://121.42.244.228:10015/v1
+dataapiurl=http://121.42.244.228:18010/v1
+orderurl=http://uid.labsop.cn:8182/worker/2
+
+[db]
+type=mysql
+
+#aliyun新服务器
+name=dqmnt_db2
+host=39.98.34.197
+db_port=3306
+user=dqmnt_user
+pwd=Y6Ba64w1Hezo
+
+[redis]
+addr = 114.215.26.149:26379
+
+[file]
+tmplateDir = ./static/file/doc/stepsexport/template/
+upFileHost = weed1.labsop.cn:9333
+downFileHost = weed1.labsop.cn:9390
+
+[casbin]
+type=mysql
+name=casbin_dqm
+host=39.98.34.197
+db_port=3306
+user=dqmnt_user
+pwd=Y6Ba64w1Hezo
+domain=dqm
+
+[workflow]
+callbackHost=http://36dcae10.ngrok.io
+OriginUrl=http://39.98.34.197:8082/acti-api/api
+AposeUrl=http://39.98.34.197:8082/acti-api/api/apose
+BaseUrl=http://39.98.34.197:8082/acti-api/api/acti
+#OriginUrl=http://192.168.0.166:8081/api
+#AposeUrl=http://192.168.0.166:8081/api/apose
+#BaseUrl=http://192.168.0.166:8081/api/acti

+ 25 - 0
Gene_point_Service/src/dashoo.cn/api/conf/auth_model.conf

@@ -0,0 +1,25 @@
+[request_definition]
+r = sub, dom, obj, act
+
+[policy_definition]
+p = sub, dom, obj, act, eft
+
+[role_definition]
+#角色
+g = _, _, _
+#菜单
+g2 = _, _, _
+#部门
+g3 = _, _, _
+#区域
+g4 = _, _, _
+#角色管理角色
+g5 = _, _, _
+#操作权限
+g6 = _, _, _
+
+[policy_effect]
+e = some(where (p.eft == allow))
+
+[matchers]
+m = g(r.sub, p.sub, r.dom) && g2(r.sub, r.dom, p.sub) && g3(r.sub, r.dom, p.sub) && g4(r.sub, r.dom, p.sub) && g5(r.sub, r.dom, p.sub) && g6(r.sub, r.dom, p.sub) && r.dom == p.dom && r.obj == p.obj && r.act == p.act

+ 20 - 0
Gene_point_Service/src/dashoo.cn/api/controllers/base.go

@@ -0,0 +1,20 @@
+// Controller基础类,所有Controller会继承此类
+package controllers
+
+import (
+	"github.com/astaxie/beego"
+)
+
+// Operations about tokens
+type BaseController struct {
+	beego.Controller
+}
+
+//总响应数据及错误信息
+type CommonResult struct {
+	Code int    `json:"code"`
+	Msg  string `json:"msg"`
+	Data struct {
+		Info interface{} `json:"info"`
+	} `json:"data"`
+}

+ 183 - 0
Gene_point_Service/src/dashoo.cn/api/controllers/converse/converse.go

@@ -0,0 +1,183 @@
+package converse
+
+import (
+	"dashoo.cn/api/business/converseService"
+	"dashoo.cn/utils"
+	"encoding/json"
+	"github.com/astaxie/beego"
+	"github.com/gorilla/websocket"
+	"log"
+	"strconv"
+	"time"
+)
+
+type ConverseController struct {
+	beego.Controller
+}
+
+const SENT = 4
+const SUCCESS = 5
+const FAILED = 6
+const EXECUTING = 7
+
+
+func (this *ConverseController) SearchDatabase() map[string]*converseService.RequestEntity{
+	svc := converseService.GetConverseService(utils.DBE)
+	tasks := svc.ScanNewTaskDetail()
+	var reqMap = make(map[string]*converseService.RequestEntity)
+
+	//依次处理每一条新任务信息
+	for _, value := range tasks {
+		//如果没有任务实体, 则创建新任务实体
+		if _,ok := reqMap[value.Task_id]; !ok{
+			entity := svc.GenerateRequestEntity(value.Task_type,value.Task_id)
+			reqMap[value.Task_id] = entity
+		}
+		//处理任务详细
+		svc.HandleTaskDetail(value.Task_type,reqMap[value.Task_id], &value)
+	}
+	for _,v := range reqMap{
+		log.Println("****************************")
+		 m,_ := json.Marshal(v)
+		log.Println(string(m))
+	}
+	return reqMap
+}
+
+
+//建立会话
+func (this *ConverseController) GetConnection(c *websocket.Conn) {
+	// 建立会话
+	log.Println("建立会话")
+	svc := converseService.GetConverseService(utils.DBE)
+	utc := time.Now().UTC().Format(time.RFC3339)
+	req := svc.GetSessionSetupRequest(utc)
+
+	msg,_ := json.Marshal(req)
+	log.Printf("setup: %s",msg)
+
+	this.SendMessage(req,c)
+	//err := c.WriteJSON(req)
+	//if err != nil {
+	//	log.Println("write:", err)
+	//}
+}
+
+func (this *ConverseController) SendMessage(req *converseService.RequestEntity, conn *websocket.Conn) {
+	err := conn.WriteJSON(&req)
+	if err != nil {
+		log.Println("write:", err)
+	}
+}
+
+//修改任务状态码
+func (this *ConverseController) StatusModify(statusCode int , task_id string) error{
+	svc := converseService.GetConverseService(utils.DBE)
+	//修改任务表任务状态
+	err := svc.TaskStatusModify(statusCode,task_id)
+	if err != nil {
+		return err
+	}
+	err = svc.SampleApplyStatusModify(statusCode,task_id)
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+//处理读到的信息
+func (this *ConverseController) HandleMessage(n int, message []byte){
+	var res converseService.ResponseEntity
+	json.Unmarshal(message,&res)
+	log.Println("res:",&res)
+	log.Println("n:",n)
+	result := res.Result
+	taskId := res.Data.Task_id
+	isEnd := res.Data.Is_end
+	taskType := res.Data.Type
+	var err error
+	//如果正常响应且任务执行成功则修改任务状态为成功
+	if result == 200 && isEnd && res.Data.Abnormal_data == nil {
+		if isEnd && res.Data.Abnormal_data == nil{
+			log.Println("---------修改成功状态-----------")
+			//todo or link to biobank
+			err = this.StatusModify(SUCCESS,taskId)
+		}else if taskType == "task_ activate" {
+			err = this.StatusModify(EXECUTING,taskId)
+		}
+	}else if  result != 200 || (isEnd && res.Data.Abnormal_data != nil) {
+		log.Println("---------修改失败状态-----------")
+		//处理异常信息
+		//保存异常信息
+		causeByte,_ := json.Marshal(res.Data.Causes)
+		excepMsg := string(causeByte)
+		if excepMsg != "" {
+			this.SaveExcepMsg(excepMsg,taskId)
+		}
+		//修改状态为失败
+		err = this.StatusModify(FAILED,taskId)
+	}
+	if err != nil {
+		log.Println(err)
+	}
+}
+
+//保存异常信息
+func (this *ConverseController) SaveExcepMsg(msg,taskId string) {
+	svc := converseService.GetConverseService(utils.DBE)
+	svc.SaveExcepMsg("sample_storage_task",msg,taskId)
+	svc.SaveExcepMsg("samplesapply",msg,taskId)
+}
+
+
+
+//清理已完成任务信息
+func (this *ConverseController) DeleteAccomplishedTask() error{
+	where := "statuscode = '"+ strconv.Itoa(SUCCESS) +"'"
+	svc := converseService.GetConverseService(utils.DBE)
+	defer svc.DBE.Close()
+	err := svc.DeleteEntityBytbl("sample_storage_task", where)
+	log.Println("===清除任务信息=================")
+	if err != nil {
+		log.Println(err)
+		return err
+	}
+	return nil
+}
+
+////@Title 生成任务信息
+////@Description 根据出入库信息生成任务信息并存入任务信息表
+////@Success 200 {object}
+////@router /executetask [post]
+//func (this *ConverseController) GenerateTask(){
+//	taskId := this.GetString("EntryNo")
+//	applyType := this.GetString("ApplyType")	//1 入库  2 出库
+//	svc := converseService.GetConverseService(utils.DBE)
+//	list,err := svc.GetBasicTaskInfo(taskId)
+//
+//	var result CommonResult
+//	if err != nil || len(list) == 0 {
+//		result.Msg = "任务执行发送失败!"
+//		result.Code = -1
+//		return
+//	}
+//	list2 := svc.HandleTaskInfo(list,applyType)
+//	session := converseService.GetConverseSessionService(utils.DBE.NewSession())
+//	defer session.Session.Close()
+//	session.Session.Begin()
+//	_,err = session.InsertEntityBytbl("sample_storage_task",list2)
+//	if err != nil {
+//		session.Session.Rollback()
+//		result.Msg = "任务执行发送失败!"
+//		result.Code = -1
+//	}else {
+//		session.Session.Commit()
+//		result.Msg = "任务执行发送成功!"
+//		result.Code = 0
+//	}
+//	this.Data["json"] = &result
+//	this.ServeJSON()
+//}
+
+
+

二进制
Gene_point_Service/src/dashoo.cn/api/genepoint_interface


+ 132 - 0
Gene_point_Service/src/dashoo.cn/api/main.go

@@ -0,0 +1,132 @@
+package main
+
+import (
+	"dashoo.cn/api/controllers/converse"
+	"dashoo.cn/utils"
+	"github.com/robfig/cron"
+	"log"
+	"os"
+	"os/signal"
+	"time"
+	"github.com/gorilla/websocket"
+)
+
+const gpServiceUrl = "ws://39.105.83.226:22225/socket"
+
+var conn *websocket.Conn
+var err error
+var ctrl converse.ConverseController
+
+func main() {
+	utils.LoadConfig("conf/app.conf")
+
+	// Initialize data.
+	utils.InitDb()
+	interrupt := make(chan os.Signal, 1)
+	signal.Notify(interrupt, os.Interrupt)
+	WebSocketFound()
+	defer conn.Close()
+	ctrl.GetConnection(conn)
+
+
+	done := make(chan struct{})
+
+	//发送请求
+	go func(){
+		cron := cron.New()
+		tick := "*/15 * * * * ?"
+		err = cron.AddFunc(tick, func() {
+			//如果已连接则发送任务
+			if conn != nil {
+				reqMap := ctrl.SearchDatabase()
+				if err != nil {
+					log.Println("read:", err)
+				}
+
+				for k,v := range reqMap {
+					err := conn.WriteJSON(v)
+					if err != nil {
+						log.Println("write:", err)
+					}else{
+						err = ctrl.StatusModify(converse.SENT,k)
+					}
+				}
+			}
+		})
+
+		cron.Start()
+
+	}()
+
+
+	//定期清理任务表已完成信息
+	go func() {
+		cron := cron.New()
+	//每天0时清除任务表
+		tick := "0 0 0 * * ?"
+		err = cron.AddFunc(tick, func() {
+			ctrl.DeleteAccomplishedTask()
+			if err != nil {
+				log.Println("read:", err)
+			}
+		})
+		cron.Start()
+	}()
+
+	// 监听消息
+	go func() {
+		defer close(done)
+		for {
+
+			n, message, err := conn.ReadMessage()
+			if err != nil {
+				log.Println("read:", err)
+				return
+			}
+			log.Printf("recv: %s", message)
+			ctrl.HandleMessage(n,message)
+		}
+	}()
+
+	for {
+
+
+		select {
+		case <-done:
+			return
+			//		case t := <-ticker.C:
+			//			err := c.WriteMessage(websocket.TextMessage, []byte(t.String()))
+			//			if err != nil {
+			//				log.Println("write:", err)
+			//				return
+			//			}
+		case <-interrupt:
+			log.Println("interrupt")
+
+			// Cleanly close the connection by sending a close message and then
+			// waiting (with timeout) for the server to close the connection.
+			err := conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
+			if err != nil {
+				log.Println("write close:", err)
+				return
+			}
+			select {
+			case <-done:
+				WebSocketFound()
+				defer conn.Close()
+				ctrl.GetConnection(conn)
+			case <-time.After(time.Second):
+			}
+			return
+		}
+	}
+	conn.Close()
+}
+
+func WebSocketFound(){
+	log.Printf("connecting to %s", gpServiceUrl)
+	conn, _, err = websocket.DefaultDialer.Dial(gpServiceUrl, nil)
+	if err != nil {
+		log.Fatal("dial:", err)
+	}
+}

+ 29 - 0
Gene_point_Service/src/dashoo.cn/api/routers/router.go

@@ -0,0 +1,29 @@
+package routers
+
+import (
+	"dashoo.cn/api/controllers/converse"
+	"github.com/astaxie/beego"
+	"github.com/astaxie/beego/plugins/cors"
+)
+
+func init() {
+	// 解决CORS
+	beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
+		AllowOrigins:     []string{"*"},
+		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
+		AllowHeaders:     []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "X-Requested-With"},
+		ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
+		AllowCredentials: true,
+	}))
+
+	ns := beego.NewNamespace("/api",
+
+		//预约使用
+		beego.NSNamespace("/converse",
+			beego.NSInclude(
+				&converse.ConverseController{},
+			),
+		),
+	)
+	beego.AddNamespace(ns)
+}

+ 1 - 0
Gene_point_Service/src/dashoo.cn/api/static/js/reload.min.js

@@ -0,0 +1 @@
+function b(a){var c=new WebSocket(a);c.onclose=function(){setTimeout(function(){b(a)},2E3)};c.onmessage=function(){location.reload()}}try{if(window.WebSocket)try{b("ws://localhost:12450/reload")}catch(a){console.error(a)}else console.log("Your browser does not support WebSockets.")}catch(a){console.error("Exception during connecting to Reload:",a)};

文件差异内容过多而无法显示
+ 6 - 0
Gene_point_Service/src/dashoo.cn/api/views/index.tpl


部分文件因为文件数量过多而无法显示