解决了上传文件名不能有中文的Bug,以及加入了对上传空文件的错误提示;解决了聊天中数字、大写字母、特殊字符导致出现的滑动栏问题;解决了邮件和报销中的detail有换行内容时的解析错误

This commit is contained in:
my-style
2020-02-22 20:27:47 +08:00
parent f1ea3d7567
commit 01df69f085
36 changed files with 448 additions and 390 deletions
+234 -363
View File
@@ -7,26 +7,17 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f2ca1002-1ec5-49f3-ab6f-fb7dec9c9e4d" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/Main.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/Main.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$3.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$4.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$4.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$5.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$5.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$6.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$6.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$7.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$7.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$8.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI$8.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/classes/cn/minoa/dataRequestInterface/MinoaDataAPI.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ndn/pib.db" beforeDir="false" afterPath="$PROJECT_DIR$/ndn/pib.db" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/HomeListController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/HomeListController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/util/Tool.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/util/Tool.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyCloudFileController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyCloudFileController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/fxml/home/HomeListOverview.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/fxml/home/HomeListOverview.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/fxml/mine/MyEmailOverview.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/fxml/mine/MyEmailOverview.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/fxml/mine/SingleEmailDetails.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/fxml/mine/SingleEmailDetails.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/fxml/mine/WrittenEmailDetails.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/fxml/mine/WrittenEmailDetails.fxml" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/.gradle/" />
@@ -107,17 +98,19 @@
<entry key="project.open.time.2" value="1" />
<entry key="project.open.time.20" value="3" />
<entry key="project.open.time.24" value="1" />
<entry key="project.open.time.26" value="1" />
<entry key="project.open.time.3" value="1" />
<entry key="project.opened" value="9" />
<entry key="project.opened" value="10" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="MF" value="1" />
<entry key="class" value="1" />
<entry key="css" value="14" />
<entry key="fxml" value="20" />
<entry key="gradle" value="5" />
<entry key="java" value="94" />
<entry key="java" value="120" />
<entry key="png" value="4" />
<entry key="txt" value="2" />
<entry key="xml" value="1" />
@@ -125,10 +118,11 @@
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="CLASS" value="1" />
<entry key="CSS" value="14" />
<entry key="Groovy" value="5" />
<entry key="Image" value="4" />
<entry key="JAVA" value="94" />
<entry key="JAVA" value="120" />
<entry key="Manifest" value="1" />
<entry key="PLAIN_TEXT" value="2" />
<entry key="XML" value="21" />
@@ -139,14 +133,14 @@
<entry key="MF" value="92" />
<entry key="fxml" value="4" />
<entry key="gradle" value="366" />
<entry key="java" value="5971" />
<entry key="java" value="7513" />
<entry key="txt" value="89" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="Groovy" value="366" />
<entry key="JAVA" value="5971" />
<entry key="JAVA" value="7513" />
<entry key="Manifest" value="92" />
<entry key="PLAIN_TEXT" value="89" />
<entry key="XML" value="4" />
@@ -162,97 +156,17 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-13">
<caret line="120" column="9" lean-forward="true" selection-start-line="120" selection-start-column="9" selection-end-line="120" selection-end-column="9" />
<state relative-caret-position="200">
<caret line="133" column="15" lean-forward="true" selection-start-line="133" selection-start-column="15" selection-end-line="133" selection-end-column="15" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/DealSingleReimbursement.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/DealSingleReimbursementController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="238" column="49" lean-forward="true" selection-start-line="238" selection-start-column="49" selection-end-line="238" selection-end-column="49" />
<folding>
<element signature="e#975#976#0" expanded="true" />
<element signature="e#999#1000#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="470" column="40" lean-forward="true" selection-start-line="470" selection-start-column="40" selection-end-line="470" selection-end-column="40" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="169">
<caret line="41" column="50" lean-forward="true" selection-start-line="41" selection-start-column="50" selection-end-line="41" selection-end-column="50" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="369" column="29" lean-forward="true" selection-start-line="369" selection-start-column="29" selection-end-line="369" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MineListController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50">
<caret line="37" column="4" lean-forward="true" selection-start-line="37" selection-start-column="4" selection-end-line="37" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="181" selection-start-line="181" selection-end-line="187" selection-end-column="25" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3210#3211#0" expanded="true" />
<element signature="e#3227#3228#0" expanded="true" />
<element signature="e#4638#4639#0" expanded="true" />
<element signature="e#4669#4670#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="56" column="43" selection-start-line="56" selection-start-column="43" selection-end-line="56" selection-end-column="43" />
<state relative-caret-position="404">
<caret line="38" lean-forward="true" selection-start-line="38" selection-end-line="38" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -265,8 +179,8 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
<option value="FxmlFile" />
<option value="Class" />
</list>
</option>
</component>
@@ -288,6 +202,12 @@
<find>exit</find>
<find>show</find>
<find>弹窗</find>
<find>通知</find>
<find>content</find>
<find>head str</find>
<find>order</find>
<find>上传</find>
<find>getSend</find>
</findStrings>
</component>
<component name="Git.Settings">
@@ -728,18 +648,22 @@
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/model/Reimbursement.java" />
<option value="$PROJECT_DIR$/src/main/resources/fxml/home/SingleReimbursementDetails.fxml" />
<option value="$PROJECT_DIR$/src/main/resources/fxml/home/WrittenReimbursementDetails.fxml" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/SingleReimbursementDetailsController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java" />
<option value="$PROJECT_DIR$/src/main/resources/fxml/home/ReimbursementDealOverview.fxml" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/HomeListController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/DealSingleReimbursementController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/util/StringByteLengthUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/util/Tool.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyCloudFileController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java" />
</list>
</option>
</component>
@@ -806,7 +730,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@@ -849,56 +773,6 @@
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="dataRequestInterface" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="view" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="view" type="462c0819:PsiDirectoryNode" />
<item name="home" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="view" type="462c0819:PsiDirectoryNode" />
<item name="login" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="view" type="462c0819:PsiDirectoryNode" />
<item name="mine" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="minoa" type="462c0819:PsiDirectoryNode" />
<item name="view" type="462c0819:PsiDirectoryNode" />
<item name="mine" type="462c0819:PsiDirectoryNode" />
<item name="SingleEmailDetailsController.java" type="529ef68f:ClassesTreeStructureProvider$PsiClassOwnerTreeNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
@@ -918,32 +792,20 @@
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="fxml" type="462c0819:PsiDirectoryNode" />
<item name="home" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Demo_gradle_javafx11_01" type="b2602c69:ProjectViewProjectNode" />
<item name="Demo_gradle_javafx11_01" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="fxml" type="462c0819:PsiDirectoryNode" />
<item name="mine" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="AndroidView" />
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="SearchEverywhereHistoryKey" value="file&#9;ACTION&#9;ChangeFileEncodingAction" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1582214408068" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1582374055442" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/lib/sqlite-jdbc-3.30.1.jar" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
@@ -1100,16 +962,18 @@
<workItem from="1582094850998" duration="13191000" />
<workItem from="1582175443289" duration="2661000" />
<workItem from="1582199584649" duration="14818000" />
<workItem from="1582298070552" duration="24498000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="75223000" />
<option name="totallyTimeSpent" value="99721000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.4977029" visible="true" weight="0.31694403" />
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.4977029" visible="true" weight="0.3139183" />
<window_info id="Structure" order="1" sideWeight="0.5022971" side_tool="true" weight="0.30542988" />
<window_info id="Designer" order="2" />
<window_info id="Image Layers" order="3" />
@@ -1118,15 +982,15 @@
<window_info id="Capture Tool" order="6" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32874617" />
<window_info anchor="bottom" id="Run" order="2" weight="0.31198686" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.1724138" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39901477" />
<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="Build" order="7" weight="0.32874617" />
<window_info anchor="bottom" id="Terminal" order="8" />
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.58039814" />
<window_info anchor="bottom" id="Event Log" order="8" side_tool="true" />
<window_info anchor="bottom" id="Terminal" order="9" weight="0.32840723" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.5796388" />
<window_info anchor="bottom" id="Database Changes" order="11" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="12" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@@ -1184,59 +1048,6 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/MineList.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50">
<caret line="2" column="17" lean-forward="true" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/MyCloudFile.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50">
<caret line="2" column="18" lean-forward="true" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyCloudFileController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="87">
<caret line="591" column="36" selection-start-line="591" selection-start-column="36" selection-end-line="591" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/MyEmail.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="3" column="28" selection-start-line="3" selection-start-column="28" selection-end-line="3" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/MyNotice.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50">
<caret line="2" column="3" lean-forward="true" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/SingleNoticeDetails.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="339">
<caret line="20" column="1" lean-forward="true" selection-start-line="20" selection-start-column="1" selection-end-line="20" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/mine/MineListOverview.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/DataTestMain.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2575">
<caret line="105" column="30" selection-start-line="105" selection-start-column="30" selection-end-line="105" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/META-INF/MANIFEST.MF">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
@@ -1264,13 +1075,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenNoticeController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="175">
<caret line="21" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/NavigationBar.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
@@ -1286,12 +1090,12 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/login/LoginOverview.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="109">
<caret line="26" column="30" selection-start-line="26" selection-start-column="30" selection-end-line="26" selection-end-column="30" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/images/logo_mini.png">
<provider selected="true" editor-type-id="images" />
@@ -1306,12 +1110,12 @@
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/NavigationBarOverview.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="29" column="42" lean-forward="true" selection-start-line="29" selection-start-column="42" selection-end-line="29" selection-end-column="42" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/NavigationBarController.java">
<provider selected="true" editor-type-id="text-editor">
@@ -1341,20 +1145,13 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="3" selection-start-line="3" selection-end-line="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/ReimbursementApplyOverview.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="8" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/ReimbursementApply.css">
<provider selected="true" editor-type-id="text-editor">
@@ -1374,18 +1171,6 @@
<provider selected="true" editor-type-id="text-editor">
<state>
<caret lean-forward="true" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1930#1931#0" expanded="true" />
<element signature="e#1971#1972#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="53">
<caret line="970" lean-forward="true" selection-start-line="970" selection-end-line="970" />
</state>
</provider>
</entry>
@@ -1399,23 +1184,13 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyNoticeController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="509">
<caret line="66" selection-start-line="66" selection-end-line="66" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/WrittenReimbursementDetails.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="164">
<caret line="23" column="127" lean-forward="true" selection-start-line="23" selection-start-column="127" selection-end-line="23" selection-end-column="127" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/ReimbursementDeal.css">
<provider selected="true" editor-type-id="text-editor">
@@ -1425,12 +1200,12 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/ReimbursementDealOverview.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="250">
<caret line="10" column="45" lean-forward="true" selection-start-line="10" selection-start-column="45" selection-end-line="10" selection-end-column="45" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/HomeListController.java">
<provider selected="true" editor-type-id="text-editor">
@@ -1442,23 +1217,74 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java">
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/SingleReimbursementDetails.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="122" column="22" lean-forward="true" selection-start-line="122" selection-start-column="22" selection-end-line="122" selection-end-column="22" />
<state relative-caret-position="313">
<caret line="20" column="23" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/DealSingleReimbursementController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="94">
<caret line="230" column="42" lean-forward="true" selection-start-line="230" selection-start-column="42" selection-end-line="230" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/DealSingleReimbursement.fxml">
<provider selected="true" editor-type-id="text-editor" />
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/OrderInfo.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret lean-forward="true" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3904#3905#0" expanded="true" />
<element signature="e#3960#3961#0" expanded="true" />
<element signature="e#593#594#0" expanded="true" />
<element signature="e#628#629#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/SingleReimbursementDetails.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MineListController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="313">
<caret line="20" column="23" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
<state relative-caret-position="25">
<caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyNoticeController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="66" lean-forward="true" selection-start-line="66" selection-end-line="66" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/lib/json-20080701.jar!/org/json/JSONTokener.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="43" selection-start-line="43" selection-end-line="43" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11.0.2/15eadef01f327a851a6d3af0ac89d56292076b13/javafx-graphics-11.0.2-sources.jar!/com/sun/glass/ui/win/WinApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="130">
<caret line="173" selection-start-line="173" selection-end-line="173" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="269">
<caret line="58" column="44" lean-forward="true" selection-start-line="58" selection-start-column="44" selection-end-line="58" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
@@ -1472,64 +1298,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MineListController.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementApplyController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50">
<caret line="37" column="4" lean-forward="true" selection-start-line="37" selection-start-column="4" selection-end-line="37" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/SingleEmailDetailsController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="56" column="43" selection-start-line="56" selection-start-column="43" selection-end-line="56" selection-end-column="43" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="56" column="5" lean-forward="true" selection-start-line="56" selection-start-column="5" selection-end-line="56" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1683#1684#0" expanded="true" />
<element signature="e#1723#1724#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/fxml/home/DealSingleReimbursement.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-13">
<caret line="120" column="9" lean-forward="true" selection-start-line="120" selection-start-column="9" selection-end-line="120" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="181" selection-start-line="181" selection-end-line="187" selection-end-column="25" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3210#3211#0" expanded="true" />
<element signature="e#3227#3228#0" expanded="true" />
<element signature="e#4638#4639#0" expanded="true" />
<element signature="e#4669#4670#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="470" column="40" lean-forward="true" selection-start-line="470" selection-start-column="40" selection-end-line="470" selection-end-column="40" />
<state relative-caret-position="25">
<caret line="87" column="5" lean-forward="true" selection-start-line="87" selection-start-column="5" selection-end-line="87" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -1538,35 +1310,134 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/ReimbursementDealController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="169">
<caret line="41" column="50" lean-forward="true" selection-start-line="41" selection-start-column="50" selection-end-line="41" selection-end-column="50" />
<state relative-caret-position="293">
<caret line="130" column="72" lean-forward="true" selection-start-line="130" selection-start-column="72" selection-end-line="130" selection-end-column="72" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/util/StringByteLengthUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="64">
<caret line="6" column="48" lean-forward="true" selection-start-line="6" selection-start-column="48" selection-end-line="6" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="175">
<caret line="8" column="15" lean-forward="true" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/util/DateUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="265">
<caret line="17" column="43" selection-start-line="17" selection-start-column="43" selection-end-line="17" selection-end-column="43" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/util/LocalDateAdapter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="314">
<caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/util/Tool.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="39">
<caret line="38" column="45" lean-forward="true" selection-start-line="38" selection-start-column="45" selection-end-line="38" selection-end-column="45" />
<folding>
<element signature="e#1744#1745#0" expanded="true" />
<element signature="e#1788#1789#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenNoticeController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="150" column="37" lean-forward="true" selection-start-line="150" selection-start-column="37" selection-end-line="150" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyCloudFileController.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret line="153" column="27" lean-forward="true" selection-start-line="153" selection-start-column="27" selection-end-line="153" selection-end-column="27" />
<folding>
<element signature="e#18869#18870#0" expanded="true" />
<element signature="e#18937#18938#0" expanded="true" />
<element signature="e#19016#19017#0" expanded="true" />
<element signature="e#19070#19071#0" expanded="true" />
<element signature="e#19150#19151#0" expanded="true" />
<element signature="e#19204#19205#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/WrittenReimbursementController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
<caret line="137" column="38" lean-forward="true" selection-start-line="137" selection-start-column="38" selection-end-line="137" selection-end-column="38" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/WrittenEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="160" column="41" lean-forward="true" selection-start-line="160" selection-start-column="41" selection-end-line="160" selection-end-column="41" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#5317#5318#0" expanded="true" />
<element signature="e#5348#5349#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/MainApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="192">
<caret line="220" column="19" lean-forward="true" selection-start-line="220" selection-start-column="19" selection-end-line="220" selection-end-column="19" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/login/LoginOverviewController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="1073" column="7" lean-forward="true" selection-start-line="1073" selection-start-column="7" selection-end-line="1073" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/mine/MyEmailController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="133" column="15" lean-forward="true" selection-start-line="133" selection-start-column="15" selection-end-line="133" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/dataRequestInterface/MinoaDataAPI.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="369" column="29" lean-forward="true" selection-start-line="369" selection-start-column="29" selection-end-line="369" selection-end-column="29" />
<state relative-caret-position="404">
<caret line="38" lean-forward="true" selection-start-line="38" selection-end-line="38" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/minoa/view/home/DealSingleReimbursementController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="238" column="49" lean-forward="true" selection-start-line="238" selection-start-column="49" selection-end-line="238" selection-end-column="49" />
<folding>
<element signature="e#975#976#0" expanded="true" />
<element signature="e#999#1000#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10 -4
View File
@@ -9,6 +9,7 @@ import java.util.TreeMap;
import cn.minoa.dataRequestInterface.MinoaDataAPI;
import cn.minoa.model.*;
import cn.minoa.util.StringByteLengthUtil;
import cn.minoa.view.NavigationBarController;
import cn.minoa.view.home.*;
import cn.minoa.view.login.LoginOverviewController;
@@ -140,6 +141,9 @@ public class MainApp extends Application {
// 记录字符串
currentSecondPane = SECOND_NULLPANE;
currentMainPane = MAIN_NULLPANE;
System.out.println("中文 bytelength: "+StringByteLengthUtil.getByteLength("中文"));
System.out.println("en bytelength: "+StringByteLengthUtil.getByteLength("en"));
}
// 获取一个新的数据请求标识
@@ -206,13 +210,15 @@ public class MainApp extends Application {
}
// 上传本地文件到指定的服务器目录下
public void uploadFileToServerPath(File file, String serverpath) {
loginerController.sendFileToServer(file, serverpath);
public Integer uploadFileToServerPath(File file, String serverpath) {
Integer r=loginerController.sendFileToServer(file, serverpath);
return r;
}
// 上传本地文件到服务器的共享文件夹下
public void uploadFileToServerSharedFolder(File file) {
loginerController.sendFileToServer(file, this.sharedFileServerPath);
public Integer uploadFileToServerSharedFolder(File file) {
Integer res=loginerController.sendFileToServer(file, this.sharedFileServerPath);
return res;
}
// 开启监听之后接收到新聊天消息时的处理=>被minoaDataAPI调用
@@ -4,6 +4,7 @@ package cn.minoa.dataRequestInterface;
import java.io.IOException;
import java.io.RandomAccessFile;
import cn.minoa.util.StringByteLengthUtil;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -513,6 +514,8 @@ public class MinoaDataAPI {
jsonObject.put("filename", serverFilePath);
orderInfo.setJsonString(jsonObject.toString());
System.out.println("request head str: " + orderInfo.getJsonString());
System.out.println("head str length: "+orderInfo.getJsonString().length());
System.out.println("head str byte length: "+ StringByteLengthUtil.getByteLength(orderInfo.getJsonString()));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -527,7 +530,8 @@ public class MinoaDataAPI {
int readLen = randomAccessFile.read(content, 0, 7000);
randomAccessFile.close();
System.out.println("file slice readLen == " + readLen);
int jsonLen = orderInfo.getJsonString().length();
// int jsonLen = orderInfo.getJsonString().length();
int jsonLen=StringByteLengthUtil.getByteLength(orderInfo.getJsonString());
requestByte = new byte[jsonLen + 1 + readLen];
System.arraycopy(orderInfo.getJsonString().getBytes(), 0, requestByte, 0, jsonLen);
requestByte[jsonLen] = 0;
@@ -540,6 +544,7 @@ public class MinoaDataAPI {
System.out.println("requestByte-len: " + requestByte.length);
System.out.println("requestByte: " + requestByte);
interest.setApplicationParameters(new Blob(requestByte));
System.out.println("interest.getApplicationParameters().size(): "+interest.getApplicationParameters().size());
// 密钥“黑盒”
try {
keyChain.sign(interest);
@@ -0,0 +1,18 @@
package cn.minoa.util;
public class StringByteLengthUtil {
public static int getByteLength(String s) {
// int length = 0;
// for (int i = 0; i < s.length(); i++) {
// int ascii = Character.codePointAt(s, i);
// if (ascii >= 0 && ascii <= 255) {
// length++;
// } else {
// length += 3;
// }
// }
// return length;
return s.getBytes().length;
}
}
+36 -5
View File
@@ -1,4 +1,5 @@
package cn.minoa.util;
// 根据字符串长度计算pane的高和宽
public class Tool {
public static double getWidth(String Msg){
@@ -6,9 +7,15 @@ public class Tool {
double width=20;
for(int i=0;i<len;i++){
if(isChinese(Msg.charAt(i))){
width+=17;
width+=18;
}else if(isBigLetter(Msg.charAt(i))){
width+=12;
}else if(isLittleLetter(Msg.charAt(i))){
width+=10;
} else if(isDigit(Msg.charAt(i))){
width+=12;
}else{
width+=9;
width+=20;
}
}
if(width<=330){
@@ -24,11 +31,15 @@ public class Tool {
double height = 40;
for(int i=0;i<len;i++){
if(isChinese(Msg.charAt(i))){
// width+=17;
width+=18;
}else if(isBigLetter(Msg.charAt(i))){
width+=12;
}else if(isLittleLetter(Msg.charAt(i))){
width+=10;
}else if(isDigit(Msg.charAt(i))){
width+=12;
}else{
// width+=9;
width+=10;
width+=20;
}
if(width>=330){
// height+=17.4;
@@ -51,4 +62,24 @@ public class Tool {
}
return false;
}
private static boolean isDigit(char ch) {
return Character.isDigit(ch);
}
private static boolean isBigLetter(char ch){
if((ch>=65)&&(ch<=90)){
return true;
}else{
return false;
}
}
private static boolean isLittleLetter(char ch){
if((ch>=97)&&(ch<=122)){
return true;
}else{
return false;
}
}
}
@@ -176,6 +176,9 @@ public class ReimbursementApplyController {
String sender_usernameString = senderJsonObject.getString("username");
String receiver_usernameString = receiverJsonObject.getString("username");
// 解析报销详细内容
System.out.println("报销详细: "+detailString);
detailString=detailString.substring(1,detailString.length()-1);
System.out.println("处理后的报销详细: "+detailString);
JSONObject detailJsonObject = new JSONObject(detailString);
Long detail_date = detailJsonObject.getLong("date");
String detail_content = detailJsonObject.getString("content");
@@ -124,6 +124,9 @@ public class ReimbursementDealController {
String sender_usernameString = senderJsonObject.getString("username");
String receiver_usernameString = receiverJsonObject.getString("username");
// 解析报销详细内容
System.out.println("报销详细: "+detailString);
detailString=detailString.substring(1,detailString.length()-1);
System.out.println("处理后的报销详细: "+detailString);
JSONObject detailJsonObject = new JSONObject(detailString);
Long detail_date = detailJsonObject.getLong("date");
String detail_content = detailJsonObject.getString("content");
@@ -51,7 +51,7 @@ public class WrittenReimbursementController {
// 在fxml被载入时候被自动调用
receiverField.setPromptText("请输入一个联系人...");
moneyField.setPromptText("请输入一个正数...");
numberField.setPromptText("请输入一个整数...");
numberField.setPromptText("请输入一个不小于0的整数...");
contentField.setPromptText("请输入报销类别,如:采购经费、活动经费等...");
detailArea.setPromptText("请输入报销费用的详细描述...");
}
@@ -76,6 +76,17 @@ public class WrittenReimbursementController {
if (file != null) {
//文件不为空,且不是文件夹
if(file.isFile()) {
//判断文件长度是否为0
System.out.println("file length: "+file.length());
if(file.length()==0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("空文件错误");
alert.setHeaderText("您选择的是一个空文件");
alert.setContentText("您选择的是一个空文件,请重新选择。");
alert.showAndWait();
return ;
}
if(!isSelected(file.getAbsolutePath())) {
reimbursementFilesList.add(file.getAbsolutePath());
reimbursementFiles.getItems().add(new reimbursementFileListItem(file.getAbsolutePath()).getPaneItem());
@@ -101,7 +112,12 @@ public class WrittenReimbursementController {
//根据文件路径判断该选中文件是否已经加入到列表中
private boolean isSelected(String absolutePath) {
boolean flag=false;
//...
for(int i=0;i<reimbursementFilesList.size();i++){
if(absolutePath.equals(reimbursementFilesList.get(i))){
flag=true;
break;
}
}
return flag;
}
@@ -120,7 +136,11 @@ public class WrittenReimbursementController {
ResponseData responseData = new ResponseData();
Long seqLong = mainApp.getNewDataReqId();
orderInfo.setSeq(seqLong);
orderInfo.setJsonString(getSendApproval());
String sSA=getSendApproval();
if(sSA.equals("")){
return ;
}
orderInfo.setJsonString(sSA);
System.out.println("getSendApproval: " + orderInfo.getJsonString());
mainApp.minoaDataAPI.executeOrder("/sendApproval", orderInfo);
responseData = mainApp.minoaDataAPI.dataCacheQueue.getResponseDataBySeq(seqLong);
@@ -187,7 +207,16 @@ public class WrittenReimbursementController {
return false;
} else {
try {
Double.parseDouble(moneyField.getText());
Double money=Double.parseDouble(moneyField.getText());
if(money<=0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("报销金额错误");
alert.setHeaderText("你的报销金额错误");
alert.setContentText("请确保你输入的报销金额是一个正数。");
alert.showAndWait();
return false;
}
} catch (NumberFormatException e) {
//弹窗提示
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
@@ -199,7 +228,7 @@ public class WrittenReimbursementController {
return false;
}
}
//验证金额
//验证单据
if (numberField.getText().trim().equals("")) {
//弹窗提示
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
@@ -211,7 +240,16 @@ public class WrittenReimbursementController {
return false;
} else {
try {
Integer.parseInt(numberField.getText());
Integer number=Integer.parseInt(numberField.getText());
if(number<0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("单据张数错误");
alert.setHeaderText("你的单据张数错误");
alert.setContentText("请确保你输入的单据张数不小于0。");
alert.showAndWait();
return false;
}
} catch (NumberFormatException e) {
//弹窗提示
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
@@ -250,6 +288,7 @@ public class WrittenReimbursementController {
//发送报销命令
private String getSendApproval () {
boolean flag=true; //记录上传附件是否成功
JSONObject detailJsonObject = new JSONObject();
String detail_detailString = detailArea.getText().trim();
String detail_contentString = contentField.getText().trim();
@@ -263,7 +302,10 @@ public class WrittenReimbursementController {
String pathfilename = reimbursementFilesList.get(i);
//上传该文件到服务器共享文件夹目录下
File file = new File(pathfilename);
mainApp.uploadFileToServerSharedFolder(file);
Integer res=mainApp.uploadFileToServerSharedFolder(file);
if(res<0){
flag=false;
}
//将该文件信息[服务器文件路径地址]写入邮件信息中
String oneFile = mainApp.sharedFileServerPath + getPureFileNameFromWindows(pathfilename);
filesArray.put(oneFile);
@@ -293,11 +335,20 @@ public class WrittenReimbursementController {
jsonObject.put("uuid", uuidString);
jsonObject.put("approver", approverString);
jsonObject.put("typeCode", typeCodeInteger);
jsonObject.put("detail", detailJsonObject);
jsonObject.put("detail", detailJsonObject.toString());
} catch (Exception e) {
// TODO: handle exception
System.out.println("exception: " + e.getMessage());
}
if(flag==false){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("邮件附件错误");
alert.setHeaderText("你的邮件附件错误");
alert.setContentText("由于邮件附件过大或权限问题,你的邮件附件不能被上传至服务器,请检查之。");
alert.showAndWait();
return "";
}
return jsonObject.toString();
}
@@ -623,7 +623,9 @@ public class LoginOverviewController {
// 拿到新闻发布人
usernameCacheString = singleNoticeCacheJsonObject.getString("proposer");
// 拿到content
String detailString = singleNoticeCacheJsonObject.getString("detail");
// JSONObject detailJsonObject = singleNoticeCacheJsonObject.getJSONObject("detail");
String detailString=singleNoticeCacheJsonObject.getString("detail");
System.out.println("通知详细: "+detailString);
JSONObject detailJsonObject = new JSONObject(detailString);
contentCacheString = detailJsonObject.getString("content");
// 拿到title
@@ -1068,8 +1070,9 @@ public class LoginOverviewController {
* .文件上传操作
* @param serverpath 将该文件上传到的指定服务器路径
* @param file 要上传的本地文件
* @return 返回0表示传输成功;返回-1表示传输失败
*/
public void sendFileToServer(File file,String serverpath) {
public Integer sendFileToServer(File file,String serverpath) {
//获取要上传文件的文件长度,计算上传次数
long filelen=file.length();
int cycle=(int)filelen/mainApp.sliceSize;
@@ -1105,8 +1108,10 @@ public class LoginOverviewController {
//每个分片都上传成功
if(flagSuccess==(cycle+1)) {
System.out.println("已成功将文件"+file.getAbsolutePath()+"上传至服务器"+serverpath+"目录下。");
return 0;
}else {
System.out.println("由于未知原因,本地文件"+file.getAbsolutePath()+"上传服务器失败。");
return -1;
}
}
}
@@ -153,9 +153,35 @@ public class MyCloudFileController {
if (file != null) {
// 文件不为空,且不是文件夹
if (file.isFile()) {
//判断文件长度是否为0
System.out.println("file length: "+file.length());
if(file.length()==0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(AlertType.WARNING);
alert.setTitle("空文件错误");
alert.setHeaderText("您选择的是一个空文件");
alert.setContentText("您选择的是一个空文件,请重新选择。");
alert.showAndWait();
return ;
}
System.out.println("正在上传文件... :" + file.getAbsolutePath());
// sendFileToServer(file);
mainApp.uploadFileToServerPath(file, currentPath + "/");
Integer r=mainApp.uploadFileToServerPath(file, currentPath + "/");
if(r==0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("文件上传成功");
alert.setHeaderText("文件上传成功");
alert.setContentText("你的文件已经上传至服务器。");
alert.showAndWait();
}else{
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(AlertType.WARNING);
alert.setTitle("文件上传失败");
alert.setHeaderText("文件上传失败");
alert.setContentText("由于未知原因,你的文件上传失败。");
alert.showAndWait();
}
// 根据当前路径,重新加载整个界面,来刷新listview
try {
mainApp.reloadCloudFileOverview(currentPath);
@@ -139,6 +139,8 @@ public class MyEmailController {
orderInfo.setJsonString(getGetApproval(queryCode));
mainApp.minoaDataAPI.executeOrder("/getApproval", orderInfo);
responseData = mainApp.minoaDataAPI.dataCacheQueue.getResponseDataBySeq(seqLong);
System.out.println("邮件回执:");
responseData.printSelf();
JSONObject jsonObject = responseData.praseRequestData();
responseData.printSelf();
// 解析数据
@@ -169,12 +171,15 @@ public class MyEmailController {
String senderInfo = emailCacheJsonObject.getString("proposer");
// 解析发送者和接收者的姓名
String receiverInfo = emailCacheJsonObject.getString("approver");
String detailString = emailCacheJsonObject.getString("detail");
JSONObject receiverJsonObject = new JSONObject(receiverInfo);
JSONObject senderJsonObject = new JSONObject(senderInfo);
String sender_usernameString = senderJsonObject.getString("username");
String receiver_usernameString = receiverJsonObject.getString("username");
// 解析邮件主题和邮件内容
String detailString = emailCacheJsonObject.getString("detail");
System.out.println("邮件详细: "+detailString);
detailString=detailString.substring(1,detailString.length()-1);
System.out.println("处理后的邮件详细: "+detailString);
JSONObject detailJsonObject = new JSONObject(detailString);
String title = detailJsonObject.getString("title");
String content = detailJsonObject.getString("content");
@@ -77,6 +77,17 @@ public class WrittenEmailController {
if (file != null) {
//文件不为空,且不是文件夹
if(file.isFile()) {
//判断文件长度是否为0
System.out.println("file length: "+file.length());
if(file.length()==0){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(AlertType.WARNING);
alert.setTitle("空文件错误");
alert.setHeaderText("您选择的是一个空文件");
alert.setContentText("您选择的是一个空文件,请重新选择。");
alert.showAndWait();
return ;
}
if(!isSelected(file.getAbsolutePath())) {
emailFilesList.add(file.getAbsolutePath());
emailFiles.getItems().add(new emailFileListItem(file.getAbsolutePath()).getPaneItem());
@@ -122,7 +133,12 @@ public class WrittenEmailController {
//根据文件路径判断该选中文件是否已经加入到列表中
private boolean isSelected(String absolutePath) {
boolean flag=false;
//...
for(int i=0;i<emailFilesList.size();i++){
if(absolutePath.equals(emailFilesList.get(i))){
flag=true;
break;
}
}
return flag;
}
@@ -135,11 +151,16 @@ public class WrittenEmailController {
ResponseData responseData = new ResponseData();
Long seqLong = mainApp.getNewDataReqId();
orderInfo.setSeq(seqLong);
orderInfo.setJsonString(getSendApproval());
String sSA=getSendApproval();
if(sSA.equals("")){
return ;
}
orderInfo.setJsonString(sSA);
System.out.println("getSendApproval: " + orderInfo.getJsonString());
mainApp.minoaDataAPI.executeOrder("/sendApproval", orderInfo);
responseData = mainApp.minoaDataAPI.dataCacheQueue.getResponseDataBySeq(seqLong);
JSONObject jsonObject = responseData.praseRequestData();
System.out.println("发送邮件回执:");
responseData.printSelf();
// 解析数据
Integer codeInteger = null;
@@ -231,6 +252,7 @@ public class WrittenEmailController {
//发送邮件命令
private String getSendApproval() {
boolean flag=true; //记录上传附件是否成功
JSONObject detailJsonObject = new JSONObject();
String titleString=emailTitleField.getText().trim();
String contentString=emailContentTextArea.getText().trim();
@@ -240,7 +262,10 @@ public class WrittenEmailController {
String pathfilename=emailFilesList.get(i);
//上传该文件到服务器共享文件夹目录下
File file=new File(pathfilename);
mainApp.uploadFileToServerSharedFolder(file);
Integer res=mainApp.uploadFileToServerSharedFolder(file);
if(res<0){
flag=false;
}
//将该文件信息[服务器文件路径地址]写入邮件信息中
JSONObject oneFile=new JSONObject();
try {
@@ -265,7 +290,7 @@ public class WrittenEmailController {
String usernameString = mainApp.loginer.getUserName();
// String usernameString = mainApp.loginer.getUserName()+"@oa.edu.cn";
String uuidString = mainApp.loginer.getUuid();
String approverString=receiverField.getText().trim();
String approverString=getUserInEmailPath(receiverField.getText().trim());
Integer typeCodeInteger=3;
try {
jsonObject.put("command", commandString);
@@ -273,11 +298,20 @@ public class WrittenEmailController {
jsonObject.put("uuid", uuidString);
jsonObject.put("approver", approverString);
jsonObject.put("typeCode", typeCodeInteger);
jsonObject.put("detail", detailJsonObject);
jsonObject.put("detail", detailJsonObject.toString());
} catch (Exception e) {
// TODO: handle exception
System.out.println("exception: " + e.getMessage());
}
if(flag==false){
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
Alert alert = new Alert(AlertType.WARNING);
alert.setTitle("邮件附件错误");
alert.setHeaderText("你的邮件附件错误");
alert.setContentText("由于邮件附件过大或权限问题,你的邮件附件不能被上传至服务器,请检查之。");
alert.showAndWait();
return "";
}
return jsonObject.toString();
}