This commit is contained in:
xd 2024-08-13 11:26:46 +08:00
parent 6fe5c5c1c0
commit d345c07e1d
52 changed files with 920 additions and 103 deletions

View File

@ -2,14 +2,23 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1ea72584-8a6e-4fb7-9928-17671c0b6e92" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/SysOaExpenses.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/ExpensesFile.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/OaOfficeStaff.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/mapper/ExpensesFileMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/IExpensesFileService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/impl/ExpensesFileServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/expenses/ExpensesFileMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/expenses/ExpensesController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/expenses/ExpensesController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/bid/BidController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/bid/BidController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zgys/ZgysController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zgys/ZgysController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/expenses/ExpensesController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/expenses/ExpensesController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/monitor/CacheController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/monitor/CacheController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/zgys/ZgysController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/zgys/ZgysController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/classes/com/ruoyi/common/constant/CacheConstants.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/classes/com/ruoyi/common/constant/CacheConstants.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" afterDir="false" />
@ -18,30 +27,25 @@
<change beforePath="$PROJECT_DIR$/ruoyi-generator/target/ruoyi-generator-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-generator/target/ruoyi-generator-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-quartz/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-quartz/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-quartz/target/ruoyi-quartz-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-quartz/target/ruoyi-quartz-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/authorize/domain/AuthorizeFile.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/authorize/domain/AuthorizeFile.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/Expenses.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/Expenses.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/mapper/ExpensesMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/mapper/ExpensesMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/IExpensesService.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/IExpensesService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/impl/ExpensesServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/impl/ExpensesServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/expenses/ExpensesMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/expenses/ExpensesMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/zgys/ZgysMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/zgys/ZgysMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/domain/Bid.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/domain/Bid.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/domain/Expenses.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/domain/Expenses.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/mapper/ExpensesMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/mapper/ExpensesMapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/service/IExpensesService.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/service/IExpensesService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/service/impl/ExpensesServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/expenses/service/impl/ExpensesServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/bid/BidMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/bid/BidMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/expenses/ExpensesMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/expenses/ExpensesMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/zgys/ZgysMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/zgys/ZgysMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/ruoyi-system-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/ruoyi-system-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/api/bid/bid.js" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/api/bid/bid.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/api/expenses/expenses.js" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/api/expenses/expenses.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/authorize/authorize/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/authorize/authorize/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/bid/bid/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/bid/bid/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/expenses/expenses/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/expenses/expenses/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/quot/quot/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/quot/quot/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/zgys/zgys/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/zgys/zgys/index.vue" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -49,6 +53,13 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
@ -78,7 +89,7 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="android.sdk.path" value="$PROJECT_DIR$/../../Android" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/ruoyi-quartz/src/main/resources/mapper/quartz" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/expenses" />
<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="project.structure.last.edited" value="Modules" />
@ -91,18 +102,18 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.ruoyi.expenses.mapper" />
<recent name="com.ruoyi.expenses.service.impl" />
<recent name="com.ruoyi.expenses.service" />
<recent name="com.ruoyi.expenses.domain" />
<recent name="com.ruoyi.quartz.mapper" />
<recent name="com.ruoyi.quartz.service.impl" />
<recent name="com.ruoyi.quartz.domain" />
<recent name="com.ruoyi.quartz.service" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\expenses" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-quartz\src\main\resources\mapper\quartz" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\quot\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\api\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\statisticsQuot\statisticsQuot" />
</key>
</component>
<component name="RunManager">
@ -140,24 +151,35 @@
<workItem from="1723188538030" duration="717000" />
<workItem from="1723192814263" duration="1896000" />
<workItem from="1723420788933" duration="2164000" />
<workItem from="1723422983942" duration="22000000" />
<workItem from="1723422983942" duration="22325000" />
<workItem from="1723507256466" duration="12142000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="2" />
</component>
<component name="Vcs.Log.History.Properties">
<option name="COLUMN_ORDER">
<list>
<option value="0" />
<option value="2" />
<option value="3" />
<option value="1" />
</list>
</option>
</component>
<component name="WindowStateProjectService">
<state x="267" y="27" key="#Project_Structure" timestamp="1723104735076">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="267" y="27" key="#Project_Structure/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723104735076" />
<state x="2120" y="23" key="#Project_Structure/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722590259734" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser" timestamp="1723450428704">
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser" timestamp="1723516788011">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449765264" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450428704" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723516211984" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723516788011" />
<state x="2215" y="10" width="1379" height="879" key="CommitChangelistDialog2" timestamp="1723422366837">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -168,51 +190,56 @@
</state>
<state width="1090" height="539" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723100577304" />
<state width="410" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446271190" />
<state x="1989" y="80" width="1302" height="741" key="DiffContextDialog" timestamp="1723514986784">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="92" y="92" width="1736" height="856" key="DiffContextDialog/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512888926" />
<state x="1989" y="80" width="1302" height="741" key="DiffContextDialog/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723514986784" />
<state x="2475" y="237" key="FileChooserDialogImpl" timestamp="1723017044285">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="740" y="274" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722996900988" />
<state x="2475" y="237" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017044285" />
<state width="1396" height="219" key="GridCell.Tab.0.bottom" timestamp="1723450966704">
<state width="1396" height="103" key="GridCell.Tab.0.bottom" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086853" />
<state width="1396" height="219" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450966704" />
<state width="1396" height="219" key="GridCell.Tab.0.center" timestamp="1723450966704">
<state width="1876" height="183" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.0.center" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086853" />
<state width="1396" height="219" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450966704" />
<state width="1396" height="219" key="GridCell.Tab.0.left" timestamp="1723450966703">
<state width="1876" height="183" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860514" />
<state width="1396" height="103" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.0.left" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086853" />
<state width="1396" height="219" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450966703" />
<state width="1396" height="219" key="GridCell.Tab.0.right" timestamp="1723450966704">
<state width="1876" height="183" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860514" />
<state width="1396" height="103" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.0.right" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086853" />
<state width="1396" height="219" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450966704" />
<state width="1876" height="263" key="GridCell.Tab.1.bottom" timestamp="1723450779323">
<state width="1876" height="183" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.1.bottom" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086854" />
<state width="1876" height="263" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450779323" />
<state width="1876" height="263" key="GridCell.Tab.1.center" timestamp="1723450779323">
<state width="1876" height="183" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.1.center" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086854" />
<state width="1876" height="263" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450779323" />
<state width="1876" height="263" key="GridCell.Tab.1.left" timestamp="1723450779322">
<state width="1876" height="183" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.1.left" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086854" />
<state width="1876" height="263" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450779322" />
<state width="1876" height="263" key="GridCell.Tab.1.right" timestamp="1723450779323">
<state width="1876" height="183" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="103" key="GridCell.Tab.1.right" timestamp="1723518150800">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="263" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723449086854" />
<state width="1876" height="263" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450779323" />
<state width="1876" height="183" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723512860515" />
<state width="1396" height="103" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723518150800" />
<state width="1396" height="250" key="GridCell.Tab.2.bottom" timestamp="1723446476877">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -253,10 +280,10 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="753" y="432" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722823330683" />
<state x="0" y="0" width="1132" height="875" maximized="true" key="dock-window-1" timestamp="1723423062840">
<screen x="0" y="0" width="1920" height="1040" />
<state x="1920" y="0" width="1456" height="873" key="dock-window-1" timestamp="1723509444822">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="1305" y="146" width="1456" height="989" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723094183714" />
<state x="1920" y="0" width="1456" height="873" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723509444822" />
<state x="0" y="0" width="1132" height="875" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723423062840" />
<state x="90" y="0" width="1142" height="875" maximized="true" key="dock-window-2" timestamp="1723440330686">
<screen x="0" y="0" width="1920" height="1040" />
@ -272,10 +299,10 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="715" y="0" width="1093" height="875" maximized="true" key="dock-window-4/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723450569564" />
<state x="2342" y="158" width="596" height="584" key="find.popup" timestamp="1722992434648">
<state x="2342" y="158" width="596" height="608" key="find.popup" timestamp="1723516672733">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="2342" y="158" width="596" height="584" key="find.popup/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722992434648" />
<state x="2342" y="158" width="596" height="608" key="find.popup/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723516672733" />
<state x="616" y="235" key="run.anything.popup" timestamp="1723094236509">
<screen x="0" y="0" width="1920" height="1040" />
</state>

View File

@ -3,27 +3,31 @@ package com.ruoyi.web.controller.expenses;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.authorize.domain.Authorize;
import com.ruoyi.authorize.domain.SysOaAuthorize;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.MinioUtil;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.expenses.domain.ExpensesFile;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
import com.ruoyi.expenses.service.IExpensesFileService;
import com.ruoyi.framework.changeRecord.ChangeRecordLog;
import com.ruoyi.redBook.domain.OAQuot;
import com.ruoyi.redBook.domain.RbVersionDateResult;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@ -32,6 +36,7 @@ import com.ruoyi.expenses.domain.Expenses;
import com.ruoyi.expenses.service.IExpensesService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
* 费用支出Controller
@ -43,9 +48,18 @@ import com.ruoyi.common.core.page.TableDataInfo;
@RequestMapping("/expenses/expenses")
public class ExpensesController extends BaseController
{
@Autowired
private RedisCache redisCache;
@Autowired
private ISysConfigService configService;
@Autowired
private IExpensesService expensesService;
@Autowired
private IExpensesFileService expensesFileService;
@Autowired
private ISysUserService userService;
@ -192,6 +206,13 @@ public class ExpensesController extends BaseController
public AjaxResult commitExp(@RequestBody Expenses expenses)
{
try{
//驳回再次提交不生成新编号
String expApprovalStatus = expenses.getExpApprovalStatus();
if(!"3".equals(expApprovalStatus)){
String doaNumber = expensesService.getCodeExp("FZ");
expenses.setExpNumber(doaNumber);
}
expenses.setExpApprovalStatus("1");
Long deptId = getLoginUser().getUser().getDeptId();
// 获取用户角色 --判断是否有新建权限
@ -202,9 +223,6 @@ public class ExpensesController extends BaseController
SysDept sysDept = deptService.selectDeptById(deptId);
String doa_id = expenses.getExpId();
String doaNumber = expensesService.getCodeExp("FZ");
expenses.setExpNumber(doaNumber);
if(StringUtils.isEmpty(doa_id)){
expenses.setExpId(UUID.fastUUID().toString());
String doaCode = expensesService.getCode("TBFYZC");
@ -258,9 +276,9 @@ public class ExpensesController extends BaseController
return error("已提交OA审批中,请勿重复操作");
}
// 投标提交OA,插入中间表 sys_oa_authorize
// 投标提交OA,插入中间表 sys_oa_expenses
SysOaExpenses sysOaExpenses = new SysOaExpenses();
SysOaAuthorize oauser = expensesService.selectOAUserByUserName(getUsername());// 查询OA用户
SysOaExpenses oauser = expensesService.selectOAUserByUserName(getUsername());// 查询OA用户
if(oauser==null){
return error("该账户:"+getUsername()+"在OA中不存在");
}
@ -301,6 +319,77 @@ public class ExpensesController extends BaseController
return success();
}
/**
* 上传费用支出附件
* @param file 文件对象
* @param relation_id 关联业务表Id
* @param file_type 文件类别
* @return
* @throws Exception
*/
@PreAuthorize("@ss.hasAnyPermi('expenses:expenses:expensesYwyFile')")
@Log(title = "上传费用支出附件", businessType = BusinessType.INSERT)
@PostMapping("/expFile")
public AjaxResult expFile(@RequestParam("expensesFile") MultipartFile file, @RequestParam("relation_id") String relation_id, @RequestParam("file_type") String file_type) throws Exception
{
if(!StringUtils.isEmpty(relation_id)){
if (!file.isEmpty())
{
ExpensesFile expensesFile= new ExpensesFile();
expensesFile.setFileId(UUID.fastUUID().toString());
String url = FileUploadUtils.uploadMinio(file,"expenses-manage", "expenses/"+relation_id);
int index = url.lastIndexOf("/")+1;
String fileName = url.substring(index);//获取文件名
int index2 = url.indexOf("/expenses/");
String fileBucketName = url.substring(index2);//获取文件对应文件服务器中地址-供后面删除功能用
expensesFile.setFileName(fileName);
expensesFile.setFileBucketName(fileBucketName);
expensesFile.setFileUrl(url);
expensesFile.setFileSize(file.getSize());
expensesFile.setFileTime(DateUtils.getTime());
expensesFile.setFileType(file_type);
expensesFile.setRelationId(relation_id);
expensesFileService.insertExpensesFile(expensesFile);
}
}else{
return error("系统异常,投标单号为空!");
}
return success("上传成功!");
}
/**
* 查询附件列表
*/
@PreAuthorize("@ss.hasAnyPermi('expenses:expenses:list')")
@GetMapping("/expensesFileList")
public TableDataInfo expensesFileList(ExpensesFile expensesFile)
{
startPage();
List<ExpensesFile> list = expensesFileService.selectExpensesFileList(expensesFile);
return getDataTable(list);
}
/**
* 删除附件列表
*/
@PreAuthorize("@ss.hasAnyPermi('expenses:expenses:expensesYwyFile')")
@Log(title = "删除费用支出附件列表", businessType = BusinessType.DELETE)
@PostMapping("/expensesFileDelete")
public AjaxResult expensesFileDelete(ExpensesFile expensesFile) {
String fileId = expensesFile.getFileId();
try {
ExpensesFile expensesfile = expensesFileService.selectExpensesFileByFileId(fileId);
expensesFileService.deleteExpensesFileByFileId(fileId);//删除文件记录
MinioUtil.removeObject("expenses-manage", expensesfile.getFileBucketName());//删除文件服务器对应文件
}catch(Exception e){
return error("系统异常!");
}
return success();
}
/**
* 删除费用支出
*/
@ -321,4 +410,34 @@ public class ExpensesController extends BaseController
}
return toAjax(expensesService.deleteExpensesByExpIds(expIds));
}
/**
* 获取OA内勤人员
* @param oaOfficeStaff
* @return
*/
@GetMapping("/oaOfficeStaff")
public AjaxResult oaOfficeStaff(OaOfficeStaff oaOfficeStaff)
{
AjaxResult ajax = AjaxResult.success();
List<OaOfficeStaff> resCache = redisCache.getCacheObject(getCacheKey("officeStaff"));
if(CollectionUtils.isEmpty(resCache)){
resCache = expensesService.oaOfficeStaff();
redisCache.setCacheObject(getCacheKey("officeStaff"),resCache);
}
ajax.put("officeStaff", resCache);
return ajax;
}
/**
* 获取redis OA内勤人员
* @param type
* @return
*/
private String getCacheKey(String type)
{
return CacheConstants.OA_OFFICE_STAFF + type;
}
}

View File

@ -42,6 +42,7 @@ public class CacheController
caches.add(new SysCache(CacheConstants.SAP_COMMON, "SAP公共数据"));
caches.add(new SysCache(CacheConstants.RB_VERSION_DATE, "调价版本"));
caches.add(new SysCache(CacheConstants.OA_OFFICE_STAFF, "OA内勤人员"));
caches.add(new SysCache(CacheConstants.QCC_CUS, "企查查客户查询次数"));
}

View File

@ -164,6 +164,13 @@ public class ZgysController extends BaseController
public AjaxResult commitZgys(@RequestBody Zgys zgys)
{
try{
//驳回再次提交不生成新编号
String pqApprovalStatus = zgys.getPqApprovalStatus();
if(!"3".equals(pqApprovalStatus)){
String pqNumber = zgysService.getCodePQ("Z");
zgys.setPqNumber(pqNumber);
}
zgys.setPqApprovalStatus("1");
Long deptId = getLoginUser().getUser().getDeptId();
// 获取用户角色 --判断是否有新建权限
@ -174,9 +181,6 @@ public class ZgysController extends BaseController
SysDept sysDept = deptService.selectDeptById(deptId);
String pq_id = zgys.getPqId();
String pqNumber = zgysService.getCodePQ("Z");
zgys.setPqNumber(pqNumber);
if(StringUtils.isEmpty(pq_id)){
zgys.setPqId(UUID.fastUUID().toString());
String pqCode = zgysService.getCode("ZGYS");

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:22 CST 2024
#Tue Aug 13 10:48:11 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-admin

Binary file not shown.

View File

@ -71,4 +71,9 @@ public class CacheConstants
* 企查查客户查询次数
*/
public static final String QCC_CUS = "qcc_cus:";
/**
* OA内勤人员
*/
public static final String OA_OFFICE_STAFF = "oa_office_staff:";
}

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:04 CST 2024
#Tue Aug 13 10:47:54 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-common

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:14 CST 2024
#Tue Aug 13 10:48:03 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-framework

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:16 CST 2024
#Tue Aug 13 10:48:05 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-generator

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:15 CST 2024
#Tue Aug 13 10:48:04 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-quartz

View File

@ -5,7 +5,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 授权备案信息-文件对象 bid_file
* 授权备案信息-文件对象 authorize_file
*
* @author ruoyi
* @date 2024-04-01

View File

@ -96,6 +96,8 @@ public class Expenses extends BaseEntity
/** 选择内勤 */
@DataName(name = "选择内勤")
private String expBackOffice;
/** 选择内勤ID */
private String expBackOfficeId;
/** 业务员账号 */
private String expSalesmanCode;
@ -325,6 +327,9 @@ public class Expenses extends BaseEntity
{
return expBackOffice;
}
public String getExpBackOfficeId() { return expBackOfficeId; }
public void setExpBackOfficeId(String expBackOfficeId) { this.expBackOfficeId = expBackOfficeId; }
public void setExpSalesmanCode(String expSalesmanCode)
{
this.expSalesmanCode = expSalesmanCode;

View File

@ -0,0 +1,113 @@
package com.ruoyi.expenses.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 费用支出信息-文件对象 expenses_file
*
* @author ruoyi
* @date 2024-04-01
*/
public class ExpensesFile extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** */
private String fileId;
/** 文件名称 */
private String fileName;
/** MINIO文件名称 */
private String fileBucketName;
/** 文件地址 */
private String fileUrl;
/** 文件大小 */
private Long fileSize;
/** 上传时间 */
private String fileTime;
/** 类别 */
private String fileType;
/** */
private String relationId;
public void setFileId(String fileId)
{
this.fileId = fileId;
}
public String getFileId()
{
return fileId;
}
public void setFileName(String fileName)
{
this.fileName = fileName;
}
public String getFileName()
{
return fileName;
}
public String getFileBucketName() {return fileBucketName;}
public void setFileBucketName(String fileBucketName) {this.fileBucketName = fileBucketName;}
public void setFileUrl(String fileUrl)
{
this.fileUrl = fileUrl;
}
public String getFileUrl()
{
return fileUrl;
}
public void setFileSize(Long fileSize)
{
this.fileSize = fileSize;
}
public Long getFileSize()
{
return fileSize;
}
public void setFileTime(String fileTime)
{
this.fileTime = fileTime;
}
public String getFileTime()
{
return fileTime;
}
public String getFileType() {return fileType;}
public void setFileType(String fileType) {this.fileType = fileType;}
public void setRelationId(String relationId)
{
this.relationId = relationId;
}
public String getRelationId()
{
return relationId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("fileId", getFileId())
.append("fileName", getFileName())
.append("fileUrl", getFileUrl())
.append("fileSize", getFileSize())
.append("fileTime", getFileTime())
.append("relationId", getRelationId())
.toString();
}
}

View File

@ -0,0 +1,28 @@
package com.ruoyi.expenses.domain;
/**
* OA内勤人员对象 oaOfficeStaff
*
* @author ruoyi
* @date 2024-07-30
*/
public class OaOfficeStaff {
private String expBackOfficeId;//OA员工id
private String expBackOffice;//OA员工名字
public String getExpBackOfficeId() {
return expBackOfficeId;
}
public void setExpBackOfficeId(String expBackOfficeId) {
this.expBackOfficeId = expBackOfficeId;
}
public String getExpBackOffice() {
return expBackOffice;
}
public void setExpBackOffice(String expBackOffice) {
this.expBackOffice = expBackOffice;
}
}

View File

@ -0,0 +1,46 @@
package com.ruoyi.expenses.mapper;
import com.ruoyi.expenses.domain.ExpensesFile;
import java.util.List;
/**
* 费用支出信息-文件Mapper接口
*
* @author ruoyi
* @date 2024-04-01
*/
public interface ExpensesFileMapper
{
/**
* 查询费用支出信息-文件
*
* @param fileId 费用支出信息-文件主键
* @return 费用支出信息-文件
*/
public ExpensesFile selectExpensesFileByFileId(String fileId);
/**
* 查询费用支出信息-文件列表
*
* @param expensesFile 费用支出信息-文件
* @return 费用支出信息-文件集合
*/
public List<ExpensesFile> selectExpensesFileList(ExpensesFile expensesFile);
/**
* 新增费用支出信息-文件
*
* @param expensesFile 费用支出信息-文件
* @return 结果
*/
public int insertExpensesFile(ExpensesFile expensesFile);
/**
* 删除费用支出信息-文件
*
* @param fileId 费用支出信息-文件主键
* @return 结果
*/
public int deleteExpensesFileByFileId(String fileId);
}

View File

@ -1,10 +1,9 @@
package com.ruoyi.expenses.mapper;
import java.util.List;
import com.ruoyi.authorize.domain.SysOaAuthorize;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.expenses.domain.Expenses;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
/**
* 费用支出Mapper接口
@ -80,5 +79,11 @@ public interface ExpensesMapper
* 查询OA用户
* @return
*/
SysOaAuthorize selectOAUserByUserName(String loginid);
SysOaExpenses selectOAUserByUserName(String loginid);
/**
* 获取 OA内勤人员
* @return
*/
List<OaOfficeStaff> oaOfficeStaff();
}

View File

@ -0,0 +1,47 @@
package com.ruoyi.expenses.service;
import com.ruoyi.expenses.domain.ExpensesFile;
import java.util.List;
/**
* 费用支出信息-文件Service接口
*
* @author ruoyi
* @date 2024-04-01
*/
public interface IExpensesFileService
{
/**
* 查询费用支出单-文件
*
* @param fileId 费用支出单-文件主键
* @return 费用支出单-文件
*/
public ExpensesFile selectExpensesFileByFileId(String fileId);
/**
* 查询费用支出单-文件列表
*
* @param bidFile 费用支出单-文件
* @return 费用支出单-文件集合
*/
public List<ExpensesFile> selectExpensesFileList(ExpensesFile bidFile);
/**
* 新增费用支出单-文件
*
* @param expensesFile 费用支出单-文件
* @return 结果
*/
public int insertExpensesFile(ExpensesFile expensesFile);
/**
* 删除费用支出单-文件信息
*
* @param fileId 费用支出单-文件主键
* @return 结果
*/
public int deleteExpensesFileByFileId(String fileId);
}

View File

@ -1,10 +1,9 @@
package com.ruoyi.expenses.service;
import java.util.List;
import com.ruoyi.authorize.domain.SysOaAuthorize;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.expenses.domain.Expenses;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
/**
* 费用支出Service接口
@ -80,5 +79,11 @@ public interface IExpensesService
* 查询OA用户
* @return
*/
SysOaAuthorize selectOAUserByUserName(String username);
SysOaExpenses selectOAUserByUserName(String username);
/**
* 获取 OA内勤人员
* @return
*/
List<OaOfficeStaff> oaOfficeStaff();
}

View File

@ -0,0 +1,74 @@
package com.ruoyi.expenses.service.impl;
import com.ruoyi.expenses.domain.ExpensesFile;
import com.ruoyi.expenses.mapper.ExpensesFileMapper;
import com.ruoyi.expenses.service.IExpensesFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 费用支出信息-文件Service业务层处理
*
* @author ruoyi
* @date 2024-04-01
*/
@Service
public class ExpensesFileServiceImpl implements IExpensesFileService
{
@Autowired
private ExpensesFileMapper expensesFileMapper;
/**
* 查询费用支出单-文件
*
* @param fileId 费用支出单-文件主键
* @return 费用支出单-文件
*/
@Override
public ExpensesFile selectExpensesFileByFileId(String fileId)
{
return expensesFileMapper.selectExpensesFileByFileId(fileId);
}
/**
* 查询费用支出单-文件列表
*
* @param expensesFile 费用支出单-文件
* @return 费用支出单-文件
*/
@Override
public List<ExpensesFile> selectExpensesFileList(ExpensesFile expensesFile)
{
return expensesFileMapper.selectExpensesFileList(expensesFile);
}
/**
* 新增费用支出单-文件
*
* @param expensesFile 费用支出单-文件
* @return 结果
*/
@Override
@Transactional
public int insertExpensesFile(ExpensesFile expensesFile)
{
return expensesFileMapper.insertExpensesFile(expensesFile);
}
/**
* 删除费用支出单-文件信息
*
* @param fileId 费用支出单-文件主键
* @return 结果
*/
@Override
@Transactional
public int deleteExpensesFileByFileId(String fileId)
{
return expensesFileMapper.deleteExpensesFileByFileId(fileId);
}
}

View File

@ -1,13 +1,12 @@
package com.ruoyi.expenses.service.impl;
import java.util.List;
import com.ruoyi.authorize.domain.SysOaAuthorize;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.expenses.mapper.ExpensesMapper;
@ -130,7 +129,17 @@ public class ExpensesServiceImpl implements IExpensesService
*/
@DataSource(DataSourceType.OA)
@Override
public SysOaAuthorize selectOAUserByUserName(String loginid) {
public SysOaExpenses selectOAUserByUserName(String loginid) {
return expensesMapper.selectOAUserByUserName(loginid);
}
/**
* 获取 OA内勤人员
* @return
*/
@DataSource(DataSourceType.OA)
@Override
public List<OaOfficeStaff> oaOfficeStaff() {
return expensesMapper.oaOfficeStaff();
}
}

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.expenses.mapper.ExpensesFileMapper">
<resultMap type="ExpensesFile" id="ExpensesFileResult">
<result property="fileId" column="file_id" />
<result property="fileName" column="file_name" />
<result property="fileBucketName" column="file_bucket_name" />
<result property="fileUrl" column="file_url" />
<result property="fileSize" column="file_size" />
<result property="fileTime" column="file_time" />
<result property="fileType" column="file_type" />
<result property="relationId" column="relation_id" />
</resultMap>
<sql id="selectExpensesFileVo">
select file_id, file_name, file_bucket_name, file_url, file_size, file_time, file_type, relation_id from expenses_file
</sql>
<select id="selectExpensesFileList" parameterType="ExpensesFile" resultMap="ExpensesFileResult">
<include refid="selectExpensesFileVo"/>
<where>
and relation_id = #{relationId}
and file_type = #{fileType}
</where>
order by file_time desc
</select>
<select id="selectExpensesFileByFileId" parameterType="String" resultMap="ExpensesFileResult">
<include refid="selectExpensesFileVo"/>
where file_id = #{fileId}
</select>
<insert id="insertExpensesFile" parameterType="ExpensesFile">
insert into expenses_file
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="fileId != null">file_id,</if>
<if test="fileName != null">file_name,</if>
<if test="fileBucketName != null">file_bucket_name,</if>
<if test="fileUrl != null">file_url,</if>
<if test="fileSize != null">file_size,</if>
<if test="fileTime != null">file_time,</if>
<if test="fileType != null">file_type,</if>
<if test="relationId != null">relation_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="fileId != null">#{fileId},</if>
<if test="fileName != null">#{fileName},</if>
<if test="fileBucketName != null">#{fileBucketName},</if>
<if test="fileUrl != null">#{fileUrl},</if>
<if test="fileSize != null">#{fileSize},</if>
<if test="fileTime != null">#{fileTime},</if>
<if test="fileType != null">#{fileType},</if>
<if test="relationId != null">#{relationId},</if>
</trim>
</insert>
<delete id="deleteExpensesFileByFileId" parameterType="String">
delete from expenses_file where file_id = #{fileId}
</delete>
</mapper>

View File

@ -23,6 +23,7 @@
<result property="expExpenditureAmountUppercase" column="exp_expenditure_amount_uppercase" />
<result property="expStaffTureorfales" column="exp_staff_tureorfales" />
<result property="expBackOffice" column="exp_back_office" />
<result property="expBackOfficeId" column="exp_back_office_id" />
<result property="expSalesmanCode" column="exp_salesman_code" />
<result property="expSalesmanBm" column="exp_salesman_bm" />
<result property="expSalesmanName" column="exp_salesman_name" />
@ -57,7 +58,7 @@
select a.exp_id, a.exp_code, a.exp_pq_code, a.exp_number, a.exp_bid_code, a.exp_expenditure_mode, a.exp_customer_bm,
a.exp_customer_name, a.exp_expenditure_people, a.exp_project, a.exp_return_date,
a.exp_expenditure_type, a.exp_expenditure_amount, a.exp_bid_area, a.exp_expenditure_date,
a.exp_expenditure_amount_uppercase, a.exp_staff_tureorfales, a.exp_back_office,
a.exp_expenditure_amount_uppercase, a.exp_staff_tureorfales, a.exp_back_office,a.exp_back_office_id,
a.exp_salesman_code, a.exp_salesman_bm, a.exp_salesman_name, a.exp_salesman_dept_id,
a.exp_salesman_dept_name, a.exp_dispatch_status, a.exp_account_name, a.exp_account_number,
a.exp_deposit_bank, a.exp_line_number_and_othres, a.exp_request_remark, a.exp_return_remark,
@ -114,6 +115,7 @@
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase,</if>
<if test="expStaffTureorfales != null">exp_staff_tureorfales,</if>
<if test="expBackOffice != null">exp_back_office,</if>
<if test="expBackOfficeId != null">exp_back_office_id,</if>
<if test="expSalesmanCode != null">exp_salesman_code,</if>
<if test="expSalesmanBm != null">exp_salesman_bm,</if>
<if test="expSalesmanName != null">exp_salesman_name,</if>
@ -156,6 +158,7 @@
<if test="expExpenditureAmountUppercase != null">#{expExpenditureAmountUppercase},</if>
<if test="expStaffTureorfales != null">#{expStaffTureorfales},</if>
<if test="expBackOffice != null">#{expBackOffice},</if>
<if test="expBackOfficeId != null">#{expBackOfficeId},</if>
<if test="expSalesmanCode != null">#{expSalesmanCode},</if>
<if test="expSalesmanBm != null">#{expSalesmanBm},</if>
<if test="expSalesmanName != null">#{expSalesmanName},</if>
@ -201,6 +204,7 @@
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase = #{expExpenditureAmountUppercase},</if>
<if test="expStaffTureorfales != null">exp_staff_tureorfales = #{expStaffTureorfales},</if>
<if test="expBackOffice != null">exp_back_office = #{expBackOffice},</if>
<if test="expBackOfficeId != null">exp_back_office_id = #{expBackOfficeId},</if>
<if test="expSalesmanCode != null">exp_salesman_code = #{expSalesmanCode},</if>
<if test="expSalesmanBm != null">exp_salesman_bm = #{expSalesmanBm},</if>
<if test="expSalesmanName != null">exp_salesman_name = #{expSalesmanName},</if>
@ -245,7 +249,15 @@
{call GetSerialNo_Business(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaAuthorize">
<select id="selectOAUserByUserName" resultType="SysOaExpenses">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}
</select>
<select id="oaOfficeStaff" resultType="OaOfficeStaff">
select a.resourceid expBackOfficeId,b.lastname expBackOffice
from hrmrolemembers as a
left join HrmResource as b on a.resourceid=b.id
where a.ROLEID=35
</select>
</mapper>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.expenses.mapper.ExpensesFileMapper">
<resultMap type="ExpensesFile" id="ExpensesFileResult">
<result property="fileId" column="file_id" />
<result property="fileName" column="file_name" />
<result property="fileBucketName" column="file_bucket_name" />
<result property="fileUrl" column="file_url" />
<result property="fileSize" column="file_size" />
<result property="fileTime" column="file_time" />
<result property="fileType" column="file_type" />
<result property="relationId" column="relation_id" />
</resultMap>
<sql id="selectExpensesFileVo">
select file_id, file_name, file_bucket_name, file_url, file_size, file_time, file_type, relation_id from expenses_file
</sql>
<select id="selectExpensesFileList" parameterType="ExpensesFile" resultMap="ExpensesFileResult">
<include refid="selectExpensesFileVo"/>
<where>
and relation_id = #{relationId}
and file_type = #{fileType}
</where>
order by file_time desc
</select>
<select id="selectExpensesFileByFileId" parameterType="String" resultMap="ExpensesFileResult">
<include refid="selectExpensesFileVo"/>
where file_id = #{fileId}
</select>
<insert id="insertExpensesFile" parameterType="ExpensesFile">
insert into expenses_file
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="fileId != null">file_id,</if>
<if test="fileName != null">file_name,</if>
<if test="fileBucketName != null">file_bucket_name,</if>
<if test="fileUrl != null">file_url,</if>
<if test="fileSize != null">file_size,</if>
<if test="fileTime != null">file_time,</if>
<if test="fileType != null">file_type,</if>
<if test="relationId != null">relation_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="fileId != null">#{fileId},</if>
<if test="fileName != null">#{fileName},</if>
<if test="fileBucketName != null">#{fileBucketName},</if>
<if test="fileUrl != null">#{fileUrl},</if>
<if test="fileSize != null">#{fileSize},</if>
<if test="fileTime != null">#{fileTime},</if>
<if test="fileType != null">#{fileType},</if>
<if test="relationId != null">#{relationId},</if>
</trim>
</insert>
<delete id="deleteExpensesFileByFileId" parameterType="String">
delete from expenses_file where file_id = #{fileId}
</delete>
</mapper>

View File

@ -23,6 +23,7 @@
<result property="expExpenditureAmountUppercase" column="exp_expenditure_amount_uppercase" />
<result property="expStaffTureorfales" column="exp_staff_tureorfales" />
<result property="expBackOffice" column="exp_back_office" />
<result property="expBackOfficeId" column="exp_back_office_id" />
<result property="expSalesmanCode" column="exp_salesman_code" />
<result property="expSalesmanBm" column="exp_salesman_bm" />
<result property="expSalesmanName" column="exp_salesman_name" />
@ -57,7 +58,7 @@
select a.exp_id, a.exp_code, a.exp_pq_code, a.exp_number, a.exp_bid_code, a.exp_expenditure_mode, a.exp_customer_bm,
a.exp_customer_name, a.exp_expenditure_people, a.exp_project, a.exp_return_date,
a.exp_expenditure_type, a.exp_expenditure_amount, a.exp_bid_area, a.exp_expenditure_date,
a.exp_expenditure_amount_uppercase, a.exp_staff_tureorfales, a.exp_back_office,
a.exp_expenditure_amount_uppercase, a.exp_staff_tureorfales, a.exp_back_office,a.exp_back_office_id,
a.exp_salesman_code, a.exp_salesman_bm, a.exp_salesman_name, a.exp_salesman_dept_id,
a.exp_salesman_dept_name, a.exp_dispatch_status, a.exp_account_name, a.exp_account_number,
a.exp_deposit_bank, a.exp_line_number_and_othres, a.exp_request_remark, a.exp_return_remark,
@ -114,6 +115,7 @@
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase,</if>
<if test="expStaffTureorfales != null">exp_staff_tureorfales,</if>
<if test="expBackOffice != null">exp_back_office,</if>
<if test="expBackOfficeId != null">exp_back_office_id,</if>
<if test="expSalesmanCode != null">exp_salesman_code,</if>
<if test="expSalesmanBm != null">exp_salesman_bm,</if>
<if test="expSalesmanName != null">exp_salesman_name,</if>
@ -156,6 +158,7 @@
<if test="expExpenditureAmountUppercase != null">#{expExpenditureAmountUppercase},</if>
<if test="expStaffTureorfales != null">#{expStaffTureorfales},</if>
<if test="expBackOffice != null">#{expBackOffice},</if>
<if test="expBackOfficeId != null">#{expBackOfficeId},</if>
<if test="expSalesmanCode != null">#{expSalesmanCode},</if>
<if test="expSalesmanBm != null">#{expSalesmanBm},</if>
<if test="expSalesmanName != null">#{expSalesmanName},</if>
@ -201,6 +204,7 @@
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase = #{expExpenditureAmountUppercase},</if>
<if test="expStaffTureorfales != null">exp_staff_tureorfales = #{expStaffTureorfales},</if>
<if test="expBackOffice != null">exp_back_office = #{expBackOffice},</if>
<if test="expBackOfficeId != null">exp_back_office_id = #{expBackOfficeId},</if>
<if test="expSalesmanCode != null">exp_salesman_code = #{expSalesmanCode},</if>
<if test="expSalesmanBm != null">exp_salesman_bm = #{expSalesmanBm},</if>
<if test="expSalesmanName != null">exp_salesman_name = #{expSalesmanName},</if>
@ -245,7 +249,15 @@
{call GetSerialNo_Business(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaAuthorize">
<select id="selectOAUserByUserName" resultType="SysOaExpenses">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}
</select>
<select id="oaOfficeStaff" resultType="OaOfficeStaff">
select a.resourceid expBackOfficeId,b.lastname expBackOffice
from hrmrolemembers as a
left join HrmResource as b on a.resourceid=b.id
where a.ROLEID=35
</select>
</mapper>

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 16:20:08 CST 2024
#Tue Aug 13 10:47:58 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-system

View File

@ -20,6 +20,7 @@ com\ruoyi\mobile\quoteMobile\service\QuoteMobileService.class
com\ruoyi\registeredCompany\mapper\RegisteredCompanyMapper.class
com\ruoyi\hainanOrder\service\HaiNanOrderService.class
com\ruoyi\system\domain\SysRoleMenu.class
com\ruoyi\expenses\service\IExpensesFileService.class
com\ruoyi\authorize\domain\SysOaAuthorize.class
com\ruoyi\factory\service\impl\CFactoryServiceImpl.class
com\ruoyi\authorize\service\impl\AuthorizeFileServiceImpl.class
@ -123,6 +124,7 @@ com\ruoyi\bid\domain\BidTbHistory.class
com\ruoyi\system\mapper\SysConfigMapper.class
com\ruoyi\technicalConfirm\domain\QuotJsqrXzDetail.class
com\ruoyi\quot\domain\Quot.class
com\ruoyi\expenses\mapper\ExpensesFileMapper.class
com\ruoyi\redBook\domain\OAQuotProduct.class
com\ruoyi\technicalConfirm\domain\BidJsqrXzRemark.class
com\ruoyi\material\domain\CMaterial.class
@ -145,6 +147,7 @@ com\ruoyi\technicalConfirm\service\impl\BidJsqrServiceImpl.class
com\ruoyi\bid\service\impl\BidFileServiceImpl.class
com\ruoyi\quot\domain\QuotZb.class
com\ruoyi\system\service\impl\SysConfigServiceImpl.class
com\ruoyi\expenses\domain\OaOfficeStaff.class
com\ruoyi\system\service\impl\SysLogininforServiceImpl.class
com\ruoyi\quote\domain\MaterialDto.class
com\ruoyi\hainanOrder\domain\HaiNanOrder.class
@ -188,11 +191,13 @@ com\ruoyi\bid\mapper\BidFileMapper.class
com\ruoyi\customer\domain\qcc\QccECIIndustryVerifyJsonResult.class
com\ruoyi\registeredCompany\service\IRegisteredCompanyService.class
com\ruoyi\sysSapUser\service\ISysSapUserService.class
com\ruoyi\expenses\service\impl\ExpensesFileServiceImpl.class
com\ruoyi\registeredCompany\domain\RegisteredCompany.class
com\ruoyi\storageLocation\service\impl\StorageLocationServiceImpl.class
com\ruoyi\authorize\mapper\AuthorizeFileMapper.class
com\ruoyi\customer\domain\qcc\QccFuzzySearchJsonResult.class
com\ruoyi\priceVerification\domain\BidHj.class
com\ruoyi\expenses\domain\ExpensesFile.class
com\ruoyi\technicalConfirm\service\impl\QuotJsqrServiceImpl.class
com\ruoyi\zgys\service\impl\ZgysFileServiceImpl.class
com\ruoyi\system\domain\SysUserOnline.class

View File

@ -53,6 +53,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\domain
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\authorize\domain\AuthorizeFile.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\priceVerification\mapper\BidHjMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\technicalConfirm\domain\BidJsqrXzDetail.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\mapper\ExpensesFileMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\bid\mapper\BidFileMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\redBook\domain\OAQuotProductTemplate2.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\mobile\quoteMobile\domain\MQuote.java
@ -158,6 +159,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\technicalConfir
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\clMaterial\domain\CYlMaterial.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\factory\service\ICFactoryService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\service\ISysDictDataService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\domain\ExpensesFile.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\factory\mapper\CFactoryMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\mobile\quoteMobile\service\impl\QuoteMobileServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\clMaterial\mapper\CYlMaterialMapper.java
@ -174,6 +176,8 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\domain
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\mapper\SysLogininforMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\technicalConfirm\domain\BidJsqrXzRemark.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\domain\SysNoticeUser.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\service\IExpensesFileService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\domain\OaOfficeStaff.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\technicalConfirm\domain\BidJsqr.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\domain\qcc\VerifyResultData.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\domain\vo\MetaVo.java
@ -204,6 +208,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\zgys\mapper\Zgy
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\domain\SysPost.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\redBook\domain\OAQuot.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\storageLocation\service\StorageLocationService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\service\impl\ExpensesFileServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\zgys\domain\ZgysFile.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\service\ICustomerService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quot\domain\QuotFile.java

View File

@ -78,3 +78,30 @@ export function rejectExp(data) {
data: data
})
}
// 查询附件列表
export function expensesFileList(query) {
return request({
url: '/expenses/expenses/expensesFileList',
method: 'get',
params: query
})
}
//删除附件
export function expensesFileDelete(fileId) {
return request({
url: '/expenses/expenses/expensesFileDelete',
method: 'post',
params: {fileId:fileId}
})
}
//获取OA内勤人员
export function oaOfficeStaff(query) {
return request({
url: '/expenses/expenses/oaOfficeStaff',
method: 'get',
params: query
})
}

View File

@ -379,7 +379,7 @@
:on-success="handleAvatarSuccess"
:show-file-list="false"
:limit="1"
v-if="this.form.doaApprovalStatus == '0'">
v-if="this.form.doaApprovalStatus == '0'||this.form.doaApprovalStatus == '3'">
<el-button size="mini" type="primary" @click="uploadFile('authorizeYwyFile')">上传文件</el-button>
</el-upload>
</div>

View File

@ -521,7 +521,7 @@
:on-success="handleAvatarSuccess"
:show-file-list="false"
:limit="1"
v-if="this.form.bidApprovalStatus == '0'">
v-if="this.form.bidApprovalStatus == '0'||this.form.bidApprovalStatus == '3'">
<el-button size="mini" type="primary" @click="uploadFile('bidYwyFile')">上传文件</el-button>
</el-upload>
</div>
@ -539,7 +539,7 @@
<el-button :key="Math.random()" size="small" type="text">
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button>
<el-button :key="Math.random()" size="small" type="text" v-if="form.bidApprovalStatus == '0'">
<el-button :key="Math.random()" size="small" type="text" v-if="form.bidApprovalStatus == '0'||form.bidApprovalStatus == '3'">
<a @click="deleteFile(scope.row.fileId,'bidYwyFile')">删除</a>
</el-button>
</template>
@ -1624,7 +1624,6 @@ export default {
const bidId = row.bidId || this.ids
getBid(bidId).then(response => {
this.form = response.data;
this.bidHasRegistrationChange(this.form.bidHasRegistration);//
this.open = true;
this.title = "投标信息";
@ -1810,20 +1809,22 @@ export default {
/** 是否报名事件 */
bidHasRegistrationChange(val) {
this.form.bidRegistrationNumber = (val != '0'?'':this.form.bidRegistrationNumber)
this.form.bidRegistrationNumber = '';
if (val == '0') {
this.rules = { ...this.rules, bidRegistrationNumber: this.bidOtherRule.bidRegistrationNumber };
} else {
this.$refs["form"].clearValidate(["bidRegistrationNumber"]);
this.$delete(this.rules, 'bidRegistrationNumber');
}
},
/** 是否价格联动事件 */
bidCopperPriceLinkageChange(val) {
this.form.bidPriceLinkageMethod = (val != '0'?'':this.form.bidPriceLinkageMethod)
this.form.bidPriceLinkageMethod = '';
if (val == '0') {
this.rules = { ...this.rules, bidPriceLinkageMethod: this.bidOtherRule.bidPriceLinkageMethod };
} else {
this.$refs["form"].clearValidate(["bidPriceLinkageMethod"]);
this.$delete(this.rules, 'bidPriceLinkageMethod');
}
},

View File

@ -395,11 +395,57 @@
</el-col>
<el-col :span="8">
<el-form-item label="选择内勤" prop="expBackOffice">
<el-input v-model="form.expBackOffice" placeholder="请输入内勤" :disabled="ywyDis||tbDis"/>
<el-input v-model="form.expBackOffice" v-if="false"/>
<el-select v-model="form.expBackOfficeId" placeholder="请选择内勤" :disabled="ywyDis||tbDis||this.form.expStaffTureorfales==1">
<el-option
v-for="dict in oaOfficeStaff"
:key="dict.expBackOfficeId"
:label="dict.expBackOffice"
:value="dict.expBackOfficeId"
@click.native="expBackOfficeChange(dict.expBackOffice)"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="center">财务凭证</el-divider>
<div v-hasPermi="['expenses:expenses:expensesYwyFile']">
<el-upload class="upload-demo"
ref="expensesYwyFileUpload"
name="expensesFile"
:action="uploadUrl"
:headers="headers"
:data="{ relation_id: this.form.expId,file_type: 'expensesYwyFile' }"
:before-upload="beforeAvatarUploadExpYwyFile"
:on-success="handleAvatarSuccess"
:show-file-list="false"
:limit="1"
v-if="this.form.expApprovalStatus == '0'||this.form.expApprovalStatus == '3'">
<el-button size="mini" type="primary" @click="uploadFile('expensesYwyFile')">上传文件</el-button>
</el-upload>
</div>
<el-table class="down" v-loading="expensesYwyFileLoading" :data="expensesYwyFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
<el-table-column prop="fileSize" label="文件大小" width="150px">
<template slot-scope="scope">
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
</template>
</el-table-column>
<el-table-column prop="fileTime" label="上传时间" width="200px"></el-table-column>
<el-table-column width="150px" label="操作">
<template slot-scope="scope">
<el-button :key="Math.random()" size="small" type="text">
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button>
<el-button :key="Math.random()" size="small" type="text" v-if="form.expApprovalStatus == '0'||form.expApprovalStatus == '3'">
<a @click="deleteFile(scope.row.fileId,'expensesYwyFile')">删除</a>
</el-button>
</template>
</el-table-column>
</el-table>
<el-divider content-position="left" class="customer_divider_text">账户信息</el-divider>
<el-row :gutter="8">
<el-col :span="8">
@ -599,7 +645,7 @@ import { listBid } from "@/api/bid/bid";
import { numberToChinese } from "@/utils/number-cn";
import { checkPermi,checkRole } from '@/utils/permission';//
import { listExpenses, getExpenses, delExpenses, addExpenses, updateExpenses, commitExp, rejectExp, commitExpOA, expAssign } from "@/api/expenses/expenses";
import { listExpenses, getExpenses, delExpenses, addExpenses, updateExpenses, commitExp, rejectExp, commitExpOA, expAssign, expensesFileList, expensesFileDelete, oaOfficeStaff } from "@/api/expenses/expenses";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入变更记录组件 */
@ -644,6 +690,15 @@ export default {
customerOpen: false,
// OA
daterangeExpExpenditureDate: [],
// -
uploadUrl: process.env.VUE_APP_BASE_API + "/expenses/expenses/expFile",
// -
headers: {Authorization: "Bearer " + getToken()},
// -
activeName: '',
expensesYwyFileLoading: false,
expensesYwyFileList: [],
//
queryParams: {
pageNum: 1,
@ -754,6 +809,8 @@ export default {
bidSingle: true,
bidMultiple: true,
//OA
oaOfficeStaff: [], // OA
};
},
@ -814,6 +871,7 @@ export default {
expExpenditureAmountUppercase: null,
expStaffTureorfales: null,
expBackOffice: null,
expBackOfficeId: null,
expSalesmanCode: null,
expSalesmanBm: null,
expSalesmanName: null,
@ -871,19 +929,22 @@ export default {
this.form.expSalesmanDeptId = this.$store.state.user.deptId;
this.form.expSalesmanDeptName = this.$store.state.user.deptName;
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.oaOfficeStaffs();//OA
const expId = row.expId || this.ids
getExpenses(expId).then(response => {
this.form = response.data;
this.expStaffTureorfalesChange(this.form.expStaffTureorfales);
this.open = true;
this.title = "费用支出";
const expApprovalStatus = this.form.expApprovalStatus;
const expOaApprovalStatus = this.form.expOaApprovalStatus;
//
//
if(checkRole(['SALES_MAN'])&&("1"==expApprovalStatus||"2"==expApprovalStatus)){
this.ywyDis = true;
}
@ -891,8 +952,18 @@ export default {
if(checkRole(['BID','BID_BSZZY','BID_ZHGLY'])&&"1"==expOaApprovalStatus){
this.tbDis = true;
}
this.getExpYwyFileList();
});
},
//OA
async oaOfficeStaffs(){
await oaOfficeStaff().then(response => {
this.oaOfficeStaff = response.officeStaff;
});
},
/** 保存修改按钮 */
saveForm() {
this.$refs["form"].validate(valid => {
@ -917,6 +988,14 @@ export default {
commitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
/*const expStaffTureorfales = this.form.expStaffTureorfales;
if(expStaffTureorfales=='0'){
if(!this.from.expBackOfficeId){
this.$modal.msgError("如有内勤,请选择内勤");
return;
}
}*/
commitExp(this.form).then(response => {
this.$modal.msgSuccess("提交成功");
this.open = false;
@ -973,14 +1052,20 @@ export default {
/** 是否选择内勤事件 */
expStaffTureorfalesChange(val) {
this.form.expBackOffice = (val != '0'?'':this.form.expBackOffice)
this.form.expBackOffice = '';
if (val == '0') {
this.rules = { ...this.rules, expBackOffice: this.expOtherRule.expBackOffice };
} else {
this.$refs['form'].clearValidate(['expBackOffice']);
this.$delete(this.rules, 'expBackOffice');
}
},
/** 选择OA内勤人员 */
expBackOfficeChange(val) {
this.form.expBackOffice = val;
},
/** 分派按钮 */
handleAssign() {
this.openPeopleSelect();
@ -1115,6 +1200,62 @@ export default {
}
},
/*********************************打开投标信息列表选择*****************************************/
/*********************************附件上传操作*****************************************/
//
uploadFile(activeName){
this.activeName = activeName
},
//-
beforeAvatarUploadExpYwyFile(file){
this.expensesYwyFileLoading = true;
const maxSize = 100 * 1024 * 1024; // 100MB
if (file.size > maxSize) {
this.$modal.msgError("文件大小超过了"+maxSize / (1024 * 1024)+"MB的限制");
this.expensesYwyFileLoading = false;
return false;
}
},
//
handleAvatarSuccess(res) {
let activeName = this.activeName;
//
if (res.code == 200) {
this.$modal.msgSuccess(res.msg);
if(activeName=='expensesYwyFile'){
this.getExpYwyFileList();
this.expensesYwyFileLoading = false;
this.$refs.expensesYwyFileUpload.clearFiles(); //****
}
}else {
this.$modal.msgError(res.msg);
if(activeName=='expensesYwyFile'){
this.expensesYwyFileLoading = false;
this.$refs.expensesYwyFileUpload.clearFiles(); //****
}
}
},
//-
getExpYwyFileList(){
const param = {relationId:this.form.expId,fileType:'expensesYwyFile'}
expensesFileList(param).then(response => {
this.expensesYwyFileList = response.rows;
});
},
//
downloadFile(fileUrl){
window.open(fileUrl, "_blank");
},
//
deleteFile(fileId,activeName){
if(activeName=='expensesYwyFile'){
this.expensesYwyFileLoading = true;
expensesFileDelete(fileId).then(response => {
this.getExpYwyFileList();
this.expensesYwyFileLoading = false;
})
}
},
/*********************************附件上传操作*****************************************/
}
};
</script>

View File

@ -354,7 +354,7 @@
:on-success="handleAvatarSuccess"
:show-file-list="false"
:limit="1"
v-if="this.form.pqApprovalStatus == '0'">
v-if="this.form.pqApprovalStatus == '0'||this.form.pqApprovalStatus == '3'">
<el-button size="mini" type="primary" @click="uploadFile('zgysYwyFile')">上传文件</el-button>
</el-upload>
</div>
@ -372,7 +372,7 @@
<el-button :key="Math.random()" size="small" type="text">
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button>
<el-button :key="Math.random()" size="small" type="text" v-if="form.pqApprovalStatus == '0'">
<el-button :key="Math.random()" size="small" type="text" v-if="form.pqApprovalStatus == '0'||this.form.pqApprovalStatus == '3'">
<a @click="deleteFile(scope.row.fileId,'zgysYwyFile')">删除</a>
</el-button>
</template>