This commit is contained in:
xd 2024-08-16 15:26:08 +08:00
parent be0cd1bf99
commit f5c82121b0
44 changed files with 844 additions and 121 deletions
.idea
ABAP_AS_WITH_POOL.jcoDestination
ruoyi-admin
src/main/java/com/ruoyi/web
controller
utils/SapFunction
target
ruoyi-common/target
ruoyi-framework/target
ruoyi-generator/target
ruoyi-quartz/target
ruoyi-system
src/main
java/com/ruoyi/expenses
resources/mapper/expenses
target
ruoyi-ui/src
api
common
expenses
views
components/Tools/ChangeRecord
expenses/expenses

View File

@ -2,8 +2,16 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1ea72584-8a6e-4fb7-9928-17671c0b6e92" name="Default Changelist" comment="">
<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 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 afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/ExpensesLkDetail.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/domain/lk/Payment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ABAP_AS_WITH_POOL.jcoDestination" beforeDir="false" afterPath="$PROJECT_DIR$/ABAP_AS_WITH_POOL.jcoDestination" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SapRfcController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SapRfcController.java" 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/src/main/java/com/ruoyi/web/utils/SapFunction/SapRfcUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/utils/SapFunction/SapRfcUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SapRfcController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SapRfcController.class" 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/redBook/RedBookController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/redBook/RedBookController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/utils/SapFunction/SapRfcUtils.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/utils/SapFunction/SapRfcUtils.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" />
@ -15,15 +23,26 @@
<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/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/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/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/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/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/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/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/com/ruoyi/redBook/mapper/OARedBookMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/redBook/mapper/OARedBookMapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/redBook/service/IRedBookService.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/redBook/service/IRedBookService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/redBook/service/impl/RedBookServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/redBook/service/impl/RedBookServiceImpl.class" 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/redBook/OARedBookMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/redBook/OARedBookMapper.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/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/api/common/sapRfc.js" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/api/common/sapRfc.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/components/Tools/ChangeRecord/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/components/Tools/ChangeRecord/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/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" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -66,7 +85,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/redBook" />
<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" />
@ -79,18 +98,18 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.ruoyi.redBook.mapper" />
<recent name="com.ruoyi.redBook.service.impl" />
<recent name="com.ruoyi.redBook.service" />
<recent name="com.ruoyi.web.controller.redBook" />
<recent name="com.ruoyi.quartz.mapper" />
<recent name="com.ruoyi.quartz.service.impl" />
<recent name="com.ruoyi.quartz.service" />
<recent name="com.ruoyi.quartz.domain" />
<recent name="com.ruoyi.quartz.task" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\redBook" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\redBook" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-quartz\src\main\resources\mapper\quartz" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\expenses" />
<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" />
</key>
</component>
<component name="RunManager">
@ -137,6 +156,8 @@
<workItem from="1723625746006" duration="427000" />
<workItem from="1723680480083" duration="5930000" />
<workItem from="1723688318121" duration="4000" />
<workItem from="1723703588207" duration="8920000" />
<workItem from="1723766714410" duration="18575000" />
</task>
<servers />
</component>
@ -159,20 +180,20 @@
</state>
<state x="267" y="27" key="#Project_Structure/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723536731417" />
<state x="2120" y="23" key="#Project_Structure/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722590259734" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser" timestamp="1723537092593">
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser" timestamp="1723785527654">
<screen x="0" y="0" width="1920" height="1040" />
</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="1723537092593" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723785527654" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723530573675" />
<state x="2215" y="10" width="1379" height="879" key="CommitChangelistDialog2" timestamp="1723422366837">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="393" y="12" width="1379" height="879" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723105028964" />
<state x="2215" y="10" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723422366837" />
<state width="421" height="466" key="DebuggerActiveHint" timestamp="1723622801134">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1090" height="539" key="DebuggerActiveHint" timestamp="1723713376036">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1090" height="539" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723603228064" />
<state width="1090" height="539" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723713376036" />
<state width="421" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723622801134" />
<state x="1989" y="80" width="1302" height="741" key="DiffContextDialog" timestamp="1723514986784">
<screen x="1920" y="0" width="1440" height="900" />
@ -184,65 +205,65 @@
</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="250" key="GridCell.Tab.0.bottom" timestamp="1723688303432">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.0.bottom" timestamp="1723791913631">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="250" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723688303432" />
<state width="1396" height="250" key="GridCell.Tab.0.center" timestamp="1723688303432">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913631" />
<state width="1396" height="133" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609786" />
<state width="1876" height="221" key="GridCell.Tab.0.center" timestamp="1723791913631">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="250" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723688303432" />
<state width="1396" height="250" key="GridCell.Tab.0.left" timestamp="1723688303432">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913631" />
<state width="1396" height="133" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609786" />
<state width="1876" height="221" key="GridCell.Tab.0.left" timestamp="1723791913631">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753556" />
<state width="1396" height="250" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723688303432" />
<state width="1396" height="250" key="GridCell.Tab.0.right" timestamp="1723688303432">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913631" />
<state width="1396" height="133" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609785" />
<state width="1876" height="221" key="GridCell.Tab.0.right" timestamp="1723791913631">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="250" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723688303432" />
<state width="1396" height="173" key="GridCell.Tab.1.bottom" timestamp="1723685620294">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913631" />
<state width="1396" height="133" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609786" />
<state width="1876" height="221" key="GridCell.Tab.1.bottom" timestamp="1723791913632">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753558" />
<state width="1396" height="173" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723685620294" />
<state width="1396" height="173" key="GridCell.Tab.1.center" timestamp="1723685620294">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913632" />
<state width="1396" height="133" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609788" />
<state width="1876" height="221" key="GridCell.Tab.1.center" timestamp="1723791913632">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="173" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723685620294" />
<state width="1396" height="173" key="GridCell.Tab.1.left" timestamp="1723685620294">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913632" />
<state width="1396" height="133" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609787" />
<state width="1876" height="221" key="GridCell.Tab.1.left" timestamp="1723791913632">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="173" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723685620294" />
<state width="1396" height="173" key="GridCell.Tab.1.right" timestamp="1723685620294">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913632" />
<state width="1396" height="133" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609786" />
<state width="1876" height="221" key="GridCell.Tab.1.right" timestamp="1723791913632">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753557" />
<state width="1396" height="173" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723685620294" />
<state width="1396" height="195" key="GridCell.Tab.2.bottom" timestamp="1723625231379">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="221" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723791913632" />
<state width="1396" height="133" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784609788" />
<state width="1876" height="215" key="GridCell.Tab.2.bottom" timestamp="1723789695446">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753558" />
<state width="1876" height="215" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723789695446" />
<state width="1396" height="195" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723625231379" />
<state width="1396" height="195" key="GridCell.Tab.2.center" timestamp="1723625231379">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="215" key="GridCell.Tab.2.center" timestamp="1723789695446">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753558" />
<state width="1876" height="215" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723789695446" />
<state width="1396" height="195" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723625231379" />
<state width="1396" height="195" key="GridCell.Tab.2.left" timestamp="1723625231379">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="215" key="GridCell.Tab.2.left" timestamp="1723789695446">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753558" />
<state width="1876" height="215" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723789695446" />
<state width="1396" height="195" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723625231379" />
<state width="1396" height="195" key="GridCell.Tab.2.right" timestamp="1723625231379">
<screen x="1920" y="0" width="1440" height="900" />
<state width="1876" height="215" key="GridCell.Tab.2.right" timestamp="1723789695446">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="280" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620753558" />
<state width="1876" height="215" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723789695446" />
<state width="1396" height="195" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723625231379" />
<state x="2203" y="104" key="Maven.ArtifactSearchDialog" timestamp="1722820075785">
<screen x="1920" y="0" width="1440" height="900" />
@ -264,16 +285,16 @@
<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="1238" height="875" maximized="true" key="dock-window-1" timestamp="1723596922438">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<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="1238" height="875" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723596922438" />
<state x="1920" y="0" width="1456" height="989" key="dock-window-2" timestamp="1723528803283">
<state x="1920" y="0" width="1456" height="989" maximized="true" key="dock-window-1" timestamp="1723789493901">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="1920" y="0" width="1456" height="989" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723528803283" />
<state x="90" y="0" width="1142" height="875" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723440330686" />
<state x="1920" y="0" width="1456" height="989" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723789493901" />
<state x="1920" y="0" width="1456" height="989" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723784463310" />
<state x="1920" y="0" width="1428" height="989" maximized="true" key="dock-window-2" timestamp="1723768099689">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="1920" y="0" width="1428" height="989" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723768099689" />
<state x="90" y="0" width="1142" height="875" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723766919261" />
<state x="672" y="0" width="1087" height="876" maximized="true" key="dock-window-3" timestamp="1723447930976">
<screen x="0" y="0" width="1920" height="1040" />
</state>
@ -283,15 +304,19 @@
<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="563" y="183" width="795" height="703" key="find.popup" timestamp="1723620137378">
<state x="563" y="183" width="795" height="703" key="find.popup" timestamp="1723768906971">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="563" y="183" width="795" height="703" key="find.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723620137378" />
<state x="563" y="183" width="795" height="703" key="find.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723768906971" />
<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>
<state x="616" y="235" key="run.anything.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723094236509" />
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1723709888849">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723709888849" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@ -301,6 +326,11 @@
<line>54</line>
<option name="timeStamp" value="13" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/expenses/service/impl/ExpensesServiceImpl.java</url>
<line>95</line>
<option name="timeStamp" value="30" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>

View File

@ -1,7 +1,7 @@
#for tests only !
#Thu Aug 15 08:36:29 CST 2024
#Fri Aug 16 15:07:54 CST 2024
jco.client.lang=ZH
jco.client.passwd=eS(El@-%R^,S+Ln%+BaDj^~il|H,NH,oC-b~T^.mO%Dy#Eek
jco.client.passwd=g|B/exL/3f*]+(L@deYR].5NencX7!7brm9yDf3(LK4ChG/[
jco.client.sysnr=00
jco.destination.pool_capacity=10
jco.client.client=800

View File

@ -21,12 +21,14 @@ import com.ruoyi.customer.domain.BankCode;
import com.ruoyi.customer.domain.Customer;
import com.ruoyi.customer.domain.qcc.FuzzySearch;
import com.ruoyi.customer.domain.qcc.QccFuzzySearchJsonResult;
import com.ruoyi.expenses.domain.lk.Payment;
import com.ruoyi.framework.config.ServerConfig;
import com.ruoyi.materialType.domain.CMaterialType;
import com.ruoyi.web.utils.SapFunction.RfcResult;
import com.ruoyi.web.utils.SapFunction.SapRfcUtils;
import com.ruoyi.web.utils.qcc.HttpHelper;
import com.ruoyi.web.utils.qcc.QiChaChaUtil;
import jodd.util.StringUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.http.client.methods.HttpHead;
import org.slf4j.Logger;
@ -322,7 +324,6 @@ public class SapRfcController
* 查询银行代码列表
*/
@PreAuthorize("@ss.hasPermi('customer:customer:bankCodeList')")
@Log(title = "银行代码信息查询", businessType = BusinessType.OTHER)
@GetMapping("/bankCodeList")
public TableDataInfo bankCodeList(BankCode bank)
{
@ -340,4 +341,39 @@ public class SapRfcController
rspData.setTotal(new PageInfo(resCache).getTotal());
return rspData;
}
/*=======================================查询SAP业务员来款信息=================================================*/
/**
* 查询SAP业务员来款信息
* @param payment
* @return
*/
@PreAuthorize("@ss.hasPermi('expenses:expenses:lkList')")
@GetMapping("/lkList")
public TableDataInfo lkList(Payment payment)
{
List<Payment> resCache = new ArrayList<Payment>();
TableDataInfo rspData = new TableDataInfo();
String salesmanBm = payment.getSalesmanBm();
if(StringUtils.isEmpty(salesmanBm)){
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询失败,该业务员未绑定SAP编码");
rspData.setRows(resCache);
rspData.setTotal(new PageInfo(resCache).getTotal());
return rspData;
}
try {
resCache = SapRfcUtils.getLkList(payment);
} catch (Exception e1) {
e1.printStackTrace();
}
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(resCache);
rspData.setTotal(new PageInfo(resCache).getTotal());
return rspData;
}
}

View File

@ -3,11 +3,9 @@ package com.ruoyi.web.controller.expenses;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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;
@ -19,9 +17,6 @@ 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.quot.domain.QuotFile;
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;
@ -174,7 +169,7 @@ public class ExpensesController extends BaseController
@PreAuthorize("@ss.hasPermi('expenses:expenses:edit')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.expenses.service.impl.ExpensesServiceImpl",
serviceImplMethod="selectExpensesByExpId",
tableId = "expId",codeName = "expCode",title = "费用支出新增")
tableId = "expId",codeName = "expCode",title = "费用支出修改")
@PutMapping
public AjaxResult edit(@RequestBody Expenses expenses)
{

View File

@ -5,6 +5,7 @@ import com.ruoyi.contract.damain.Contract;
import com.ruoyi.customer.domain.Bank;
import com.ruoyi.customer.domain.BankCode;
import com.ruoyi.customer.domain.Customer;
import com.ruoyi.expenses.domain.lk.Payment;
import com.sap.conn.jco.*;
import java.util.ArrayList;
@ -563,6 +564,49 @@ public class SapRfcUtils {
return res;
}
/*=======================================查询SAP业务员来款信息=================================================*/
/**
* 查询SAP业务员来款信息
* @param payment
* @return
*/
public static List<Payment> getLkList(Payment payment) {
JCoFunction function = null;
Payment rfcResult = null;
List<Payment> payments = new ArrayList<>();
JCoDestination destination = ConnectToSAP.connect();
try {
function = destination.getRepository().getFunctionTemplate("ZTB_LKCX").getFunction();
if (function == null)
throw new RuntimeException("RFC_SYSTEM_INFO not found in SAP.");
JCoParameterList input = function.getImportParameterList();
input.setValue("I_YWYBM", payment.getSalesmanBm());//业务员编码
input.setValue("KH", payment.getCustomerName());//客户
input.setValue("I_DTEBEGIN", payment.getPzDateBegin());//凭证日期开始
input.setValue("I_DTEEND", payment.getPzDateEnd());//凭证日期结束
function.execute(destination);
JCoTable table = function.getTableParameterList().getTable("LT_OUT");
for(int i = 0; i<table.getNumRows(); i++){
table.setRow(i);
rfcResult = new Payment();
rfcResult.setPz(table.getString("BELNR"));//sap凭证
rfcResult.setYear(table.getString("GJAHR"));//年度
rfcResult.setPzDate(table.getString("BUDAT"));//凭证日期
rfcResult.setCustomerBm(table.getString("KHBM"));//客户编码
rfcResult.setCustomerName(table.getString("KHMC"));//客户名称
rfcResult.setSalesmanBm(table.getString("YWYBM"));//业务员编码
rfcResult.setSalesmanName(table.getString("YWYMC"));//业务员名称
rfcResult.setAmount(table.getString("JE"));//金额
rfcResult.setRemark(table.getString("BKTXT"));//备注
payments.add(rfcResult);
}
}catch (Exception e) {
e.printStackTrace();
}
return payments;
}
public static void main(String[] args) {
JCoFunction function = null;
RfcResult rfcResult = null;

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:34:48 CST 2024
#Fri Aug 16 15:04:38 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-admin

Binary file not shown.

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:33:56 CST 2024
#Fri Aug 16 15:04:21 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-common

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:34:03 CST 2024
#Fri Aug 16 15:04:28 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-framework

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:34:05 CST 2024
#Fri Aug 16 15:04:31 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-generator

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:34:04 CST 2024
#Fri Aug 16 15:04:30 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-quartz

View File

@ -1,11 +1,15 @@
package com.ruoyi.expenses.domain;
import com.ruoyi.common.annotation.DataName;
import com.ruoyi.quot.domain.QuotMaterial;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.math.BigDecimal;
import java.util.List;
/**
* 费用支出对象 expenses
*
@ -74,7 +78,12 @@ public class Expenses extends BaseEntity
/** 支出金额 */
@DataName(name = "支出金额")
@Excel(name = "支出金额")
private Long expExpenditureAmount;
private BigDecimal expExpenditureAmount;
/** 来款金额 */
@DataName(name = "来款金额")
@Excel(name = "来款金额")
private BigDecimal expLkAmount;
/** 投标区域 */
@DataName(name = "投标区域")
@ -181,6 +190,10 @@ public class Expenses extends BaseEntity
@DataName(name = "分派接收人")
private String expReceiveUserNickName;
/** 费用支出-来款信息 */
private List<ExpensesLkDetail> expensesLkDetailList;
public void setExpId(String expId)
{
this.expId = expId;
@ -274,15 +287,15 @@ public class Expenses extends BaseEntity
{
return expExpenditureType;
}
public void setExpExpenditureAmount(Long expExpenditureAmount)
{
this.expExpenditureAmount = expExpenditureAmount;
}
public void setExpExpenditureAmount(BigDecimal expExpenditureAmount) { this.expExpenditureAmount = expExpenditureAmount; }
public Long getExpExpenditureAmount()
public BigDecimal getExpExpenditureAmount()
{
return expExpenditureAmount;
}
public BigDecimal getExpLkAmount() { return expLkAmount; }
public void setExpLkAmount(BigDecimal expLkAmount) { this.expLkAmount = expLkAmount; }
public void setExpBidArea(String expBidArea)
{
this.expBidArea = expBidArea;
@ -301,10 +314,7 @@ public class Expenses extends BaseEntity
{
return expExpenditureDate;
}
public void setExpExpenditureAmountUppercase(String expExpenditureAmountUppercase)
{
this.expExpenditureAmountUppercase = expExpenditureAmountUppercase;
}
public void setExpExpenditureAmountUppercase(String expExpenditureAmountUppercase) { this.expExpenditureAmountUppercase = expExpenditureAmountUppercase; }
public String getExpExpenditureAmountUppercase()
{
@ -472,4 +482,8 @@ public class Expenses extends BaseEntity
public String getExpReceiveUserNickName() { return expReceiveUserNickName; }
public void setExpReceiveUserNickName(String expReceiveUserNickName) { this.expReceiveUserNickName = expReceiveUserNickName; }
public List<ExpensesLkDetail> getExpensesLkDetailList() { return expensesLkDetailList; }
public void setExpensesLkDetailList(List<ExpensesLkDetail> expensesLkDetailList) { this.expensesLkDetailList = expensesLkDetailList; }
}

View File

@ -0,0 +1,100 @@
package com.ruoyi.expenses.domain;
import java.math.BigDecimal;
public class ExpensesLkDetail {
private String expLkId;//费用支出-来款信息id
private String pz;//sap凭证
private String pzDate;//凭证日期
private String year;//年度
private String customerBm;//客户编码
private String customerName;//客户名称
private String salesmanBm;//业务员编码
private String salesmanName;//业务员名称
private BigDecimal amount;//金额
private BigDecimal checkAmount;//确认金额
private String remark;//备注
private String expId;//费用支出id
public String getExpLkId() { return expLkId; }
public void setExpLkId(String expLkId) { this.expLkId = expLkId; }
public String getPz() {
return pz;
}
public void setPz(String pz) {
this.pz = pz;
}
public String getPzDate() {
return pzDate;
}
public void setPzDate(String pzDate) {
this.pzDate = pzDate;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getCustomerBm() {
return customerBm;
}
public void setCustomerBm(String customerBm) {
this.customerBm = customerBm;
}
public String getCustomerName() { return customerName; }
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getSalesmanBm() {
return salesmanBm;
}
public void setSalesmanBm(String salesmanBm) {
this.salesmanBm = salesmanBm;
}
public String getSalesmanName() { return salesmanName; }
public void setSalesmanName(String salesmanName) {
this.salesmanName = salesmanName;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getCheckAmount() { return checkAmount; }
public void setCheckAmount(BigDecimal checkAmount) { this.checkAmount = checkAmount; }
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getExpId() { return expId; }
public void setExpId(String expId) { this.expId = expId; }
}

View File

@ -0,0 +1,103 @@
package com.ruoyi.expenses.domain.lk;
public class Payment {
private String pz;//sap凭证
private String pzDate;//凭证日期
private String pzDateBegin;//凭证日期(开始)
private String pzDateEnd;//凭证日期(结束)
private String year;//年度
private String customerBm;//客户编码
private String customerName;//客户名称
private String salesmanBm;//业务员编码
private String salesmanName;//业务员名称
private String amount;//金额
private String remark;//备注
public String getPz() {
return pz;
}
public void setPz(String pz) {
this.pz = pz;
}
public String getPzDate() {
return pzDate;
}
public void setPzDate(String pzDate) {
this.pzDate = pzDate;
}
public String getPzDateBegin() {
return pzDateBegin;
}
public void setPzDateBegin(String pzDateBegin) {
this.pzDateBegin = pzDateBegin;
}
public String getPzDateEnd() {
return pzDateEnd;
}
public void setPzDateEnd(String pzDateEnd) {
this.pzDateEnd = pzDateEnd;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getCustomerBm() {
return customerBm;
}
public void setCustomerBm(String customerBm) {
this.customerBm = customerBm;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getSalesmanBm() {
return salesmanBm;
}
public void setSalesmanBm(String salesmanBm) {
this.salesmanBm = salesmanBm;
}
public String getSalesmanName() {
return salesmanName;
}
public void setSalesmanName(String salesmanName) {
this.salesmanName = salesmanName;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.expenses.mapper;
import java.util.List;
import com.ruoyi.expenses.domain.Expenses;
import com.ruoyi.expenses.domain.ExpensesLkDetail;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
@ -37,6 +38,12 @@ public interface ExpensesMapper
*/
public int insertExpenses(Expenses expenses);
/**
* 批量插入费用支出-来款明细表
* @param expensesLkDetailList
*/
void batchExpensesLkDetail(List<ExpensesLkDetail> expensesLkDetailList);
/**
* 费用支出插入OA中间表
*
@ -53,6 +60,12 @@ public interface ExpensesMapper
*/
public int updateExpenses(Expenses expenses);
/**
* 通过费用支出主键删除来款明细表
* @param expId
*/
void deleteExpensesLkDetailByExpId(String expId);
/**
* 删除费用支出
*

View File

@ -1,12 +1,18 @@
package com.ruoyi.expenses.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.expenses.domain.ExpensesLkDetail;
import com.ruoyi.expenses.domain.OaOfficeStaff;
import com.ruoyi.expenses.domain.SysOaExpenses;
import com.ruoyi.quot.domain.Quot;
import com.ruoyi.quot.domain.QuotMaterial;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.expenses.mapper.ExpensesMapper;
@ -62,7 +68,10 @@ public class ExpensesServiceImpl implements IExpensesService
public int insertExpenses(Expenses expenses)
{
expenses.setCreateTime(DateUtils.getNowDate());
return expensesMapper.insertExpenses(expenses);
expenses.setUpdateTime(DateUtils.getNowDate());
int rows = expensesMapper.insertExpenses(expenses);
insertExpensesLkDetail(expenses);
return rows;
}
/**
@ -77,6 +86,36 @@ public class ExpensesServiceImpl implements IExpensesService
expensesMapper.insertSysOAExpenses(sysOaExpenses);
}
/**
* 新增费用支出-来款信息
*
* @param expenses 来款对象
*/
public void insertExpensesLkDetail(Expenses expenses)
{
List<ExpensesLkDetail> expensesLkDetailList = expenses.getExpensesLkDetailList();
String expId = expenses.getExpId();
if (StringUtils.isNotNull(expensesLkDetailList))
{
List<ExpensesLkDetail> list = new ArrayList<ExpensesLkDetail>();
for (ExpensesLkDetail expensesLkDetail : expensesLkDetailList)
{
expensesLkDetail.setExpLkId(UUID.fastUUID().toString());
expensesLkDetail.setExpId(expId);
list.add(expensesLkDetail);
}
if (list.size() > 0)
{
int batchSize = 100; // 每批次插入的数据量
for (int i = 0; i < list.size(); i += batchSize) {
int toIndex = Math.min(i + batchSize, list.size());
List<ExpensesLkDetail> subList = list.subList(i, toIndex);
expensesMapper.batchExpensesLkDetail(subList);
}
}
}
}
/**
* 修改费用支出
*
@ -88,6 +127,8 @@ public class ExpensesServiceImpl implements IExpensesService
public int updateExpenses(Expenses expenses)
{
expenses.setUpdateTime(DateUtils.getNowDate());
expensesMapper.deleteExpensesLkDetailByExpId(expenses.getExpId());
insertExpensesLkDetail(expenses);
return expensesMapper.updateExpenses(expenses);
}

View File

@ -18,6 +18,7 @@
<result property="expReturnDate" column="exp_return_date" />
<result property="expExpenditureType" column="exp_expenditure_type" />
<result property="expExpenditureAmount" column="exp_expenditure_amount" />
<result property="expLkAmount" column="exp_lk_amount" />
<result property="expBidArea" column="exp_bid_area" />
<result property="expExpenditureDate" column="exp_expenditure_date" />
<result property="expExpenditureAmountUppercase" column="exp_expenditure_amount_uppercase" />
@ -51,6 +52,25 @@
<result property="updateTime" column="update_time" />
</resultMap>
<resultMap id="ExpensesLkDetailResult" type="Expenses" extends="ExpensesResult">
<collection property="expensesLkDetailList" notNullColumn="sub_exp_lk_id" javaType="java.util.List" resultMap="LkDetailResult" />
</resultMap>
<resultMap type="ExpensesLkDetail" id="LkDetailResult">
<result property="pz" column="sub_pz" />
<result property="pzDate" column="sub_pzDate" />
<result property="year" column="sub_year" />
<result property="customerBm" column="sub_customerBm" />
<result property="customerName" column="sub_customerName" />
<result property="salesmanBm" column="sub_salesmanBm" />
<result property="salesmanName" column="sub_salesmanName" />
<result property="amount" column="sub_amount" />
<result property="checkAmount" column="sub_checkAmount" />
<result property="remark" column="sub_remark" />
<result property="expLkId" column="sub_exp_lk_id" />
</resultMap>
<sql id="expJoins">
left join sys_user u on u.user_id=a.create_by
left join sys_user u2 on u2.user_id=a.exp_receive_user_id
@ -60,7 +80,7 @@
<sql id="selectExpensesVo">
select a.exp_id, a.exp_code, a.exp_pq_number, a.exp_number, a.exp_bid_number, 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_type, a.exp_expenditure_amount, a.exp_lk_amount, a.exp_bid_area, a.exp_expenditure_date,
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,
@ -94,9 +114,27 @@
</where>
</select>
<select id="selectExpensesByExpId" parameterType="String" resultMap="ExpensesResult">
<include refid="selectExpensesVo"/>
where exp_id = #{expId}
<select id="selectExpensesByExpId" parameterType="String" resultMap="ExpensesLkDetailResult">
select a.exp_id, a.exp_code, a.exp_pq_number, a.exp_number, a.exp_bid_number, 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_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_cash_deposit,a.exp_lxr, a.exp_lxrdh,
a.exp_return_remark,a.exp_approval_status, a.exp_oa_approval_status,a.exp_oa_remark, a.exp_receive_user_id,
u2.nick_name exp_receive_user_nick_name,
a.create_by, a.create_time, a.update_by, a.update_time,
b.exp_lk_id as sub_exp_lk_id,b.pz as sub_pz,b.pzDate as sub_pzDate,
b.year as sub_year,b.customerBm as sub_customerBm,b.customerName as sub_customerName,
b.salesmanBm as sub_salesmanBm,b.salesmanName as sub_salesmanName,b.amount as sub_amount,
b.checkAmount as sub_checkAmount,b.remark as sub_remark
from expenses a
left join expenses_lkdetail b on b.exp_id = a.exp_id
<include refid="expJoins"/>
where a.exp_id = #{expId}
order by b.pzDate desc
</select>
<insert id="insertExpenses" parameterType="Expenses">
@ -115,6 +153,7 @@
<if test="expReturnDate != null">exp_return_date,</if>
<if test="expExpenditureType != null">exp_expenditure_type,</if>
<if test="expExpenditureAmount != null">exp_expenditure_amount,</if>
<if test="expLkAmount != null">exp_lk_amount,</if>
<if test="expBidArea != null">exp_bid_area,</if>
<if test="expExpenditureDate != null">exp_expenditure_date,</if>
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase,</if>
@ -161,6 +200,7 @@
<if test="expReturnDate != null">#{expReturnDate},</if>
<if test="expExpenditureType != null">#{expExpenditureType},</if>
<if test="expExpenditureAmount != null">#{expExpenditureAmount},</if>
<if test="expLkAmount != null">#{expLkAmount},</if>
<if test="expBidArea != null">#{expBidArea},</if>
<if test="expExpenditureDate != null">#{expExpenditureDate},</if>
<if test="expExpenditureAmountUppercase != null">#{expExpenditureAmountUppercase},</if>
@ -285,6 +325,7 @@
<if test="expReturnDate != null">exp_return_date = #{expReturnDate},</if>
<if test="expExpenditureType != null">exp_expenditure_type = #{expExpenditureType},</if>
<if test="expExpenditureAmount != null">exp_expenditure_amount = #{expExpenditureAmount},</if>
<if test="expLkAmount != null">exp_lk_amount = #{expLkAmount},</if>
<if test="expBidArea != null">exp_bid_area = #{expBidArea},</if>
<if test="expExpenditureDate != null">exp_expenditure_date = #{expExpenditureDate},</if>
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase = #{expExpenditureAmountUppercase},</if>
@ -331,6 +372,17 @@
</foreach>
</delete>
<delete id="deleteExpensesLkDetailByExpId" parameterType="String">
delete from expenses_lkdetail where exp_id = #{expId}
</delete>
<insert id="batchExpensesLkDetail">
insert into expenses_lkdetail( exp_lk_id, pz, pzDate, year,customerBm, customerName, salesmanBm,salesmanName, amount,checkAmount,remark,exp_id) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.expLkId}, #{item.pz}, #{item.pzDate}, #{item.year}, #{item.customerBm}, #{item.customerName}, #{item.salesmanBm}, #{item.salesmanName}, cast(#{item.amount,jdbcType=DECIMAL} as decimal(18,3)), cast(#{item.checkAmount,jdbcType=DECIMAL} as decimal(18,3)),#{item.remark}, #{item.expId})
</foreach>
</insert>
<select id="getCode" resultType="String" statementType="CALLABLE">
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
</select>

View File

@ -18,6 +18,7 @@
<result property="expReturnDate" column="exp_return_date" />
<result property="expExpenditureType" column="exp_expenditure_type" />
<result property="expExpenditureAmount" column="exp_expenditure_amount" />
<result property="expLkAmount" column="exp_lk_amount" />
<result property="expBidArea" column="exp_bid_area" />
<result property="expExpenditureDate" column="exp_expenditure_date" />
<result property="expExpenditureAmountUppercase" column="exp_expenditure_amount_uppercase" />
@ -51,6 +52,25 @@
<result property="updateTime" column="update_time" />
</resultMap>
<resultMap id="ExpensesLkDetailResult" type="Expenses" extends="ExpensesResult">
<collection property="expensesLkDetailList" notNullColumn="sub_exp_lk_id" javaType="java.util.List" resultMap="LkDetailResult" />
</resultMap>
<resultMap type="ExpensesLkDetail" id="LkDetailResult">
<result property="pz" column="sub_pz" />
<result property="pzDate" column="sub_pzDate" />
<result property="year" column="sub_year" />
<result property="customerBm" column="sub_customerBm" />
<result property="customerName" column="sub_customerName" />
<result property="salesmanBm" column="sub_salesmanBm" />
<result property="salesmanName" column="sub_salesmanName" />
<result property="amount" column="sub_amount" />
<result property="checkAmount" column="sub_checkAmount" />
<result property="remark" column="sub_remark" />
<result property="expLkId" column="sub_exp_lk_id" />
</resultMap>
<sql id="expJoins">
left join sys_user u on u.user_id=a.create_by
left join sys_user u2 on u2.user_id=a.exp_receive_user_id
@ -60,7 +80,7 @@
<sql id="selectExpensesVo">
select a.exp_id, a.exp_code, a.exp_pq_number, a.exp_number, a.exp_bid_number, 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_type, a.exp_expenditure_amount, a.exp_lk_amount, a.exp_bid_area, a.exp_expenditure_date,
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,
@ -94,9 +114,27 @@
</where>
</select>
<select id="selectExpensesByExpId" parameterType="String" resultMap="ExpensesResult">
<include refid="selectExpensesVo"/>
where exp_id = #{expId}
<select id="selectExpensesByExpId" parameterType="String" resultMap="ExpensesLkDetailResult">
select a.exp_id, a.exp_code, a.exp_pq_number, a.exp_number, a.exp_bid_number, 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_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_cash_deposit,a.exp_lxr, a.exp_lxrdh,
a.exp_return_remark,a.exp_approval_status, a.exp_oa_approval_status,a.exp_oa_remark, a.exp_receive_user_id,
u2.nick_name exp_receive_user_nick_name,
a.create_by, a.create_time, a.update_by, a.update_time,
b.exp_lk_id as sub_exp_lk_id,b.pz as sub_pz,b.pzDate as sub_pzDate,
b.year as sub_year,b.customerBm as sub_customerBm,b.customerName as sub_customerName,
b.salesmanBm as sub_salesmanBm,b.salesmanName as sub_salesmanName,b.amount as sub_amount,
b.checkAmount as sub_checkAmount,b.remark as sub_remark
from expenses a
left join expenses_lkdetail b on b.exp_id = a.exp_id
<include refid="expJoins"/>
where a.exp_id = #{expId}
order by b.pzDate desc
</select>
<insert id="insertExpenses" parameterType="Expenses">
@ -115,6 +153,7 @@
<if test="expReturnDate != null">exp_return_date,</if>
<if test="expExpenditureType != null">exp_expenditure_type,</if>
<if test="expExpenditureAmount != null">exp_expenditure_amount,</if>
<if test="expLkAmount != null">exp_lk_amount,</if>
<if test="expBidArea != null">exp_bid_area,</if>
<if test="expExpenditureDate != null">exp_expenditure_date,</if>
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase,</if>
@ -161,6 +200,7 @@
<if test="expReturnDate != null">#{expReturnDate},</if>
<if test="expExpenditureType != null">#{expExpenditureType},</if>
<if test="expExpenditureAmount != null">#{expExpenditureAmount},</if>
<if test="expLkAmount != null">#{expLkAmount},</if>
<if test="expBidArea != null">#{expBidArea},</if>
<if test="expExpenditureDate != null">#{expExpenditureDate},</if>
<if test="expExpenditureAmountUppercase != null">#{expExpenditureAmountUppercase},</if>
@ -285,6 +325,7 @@
<if test="expReturnDate != null">exp_return_date = #{expReturnDate},</if>
<if test="expExpenditureType != null">exp_expenditure_type = #{expExpenditureType},</if>
<if test="expExpenditureAmount != null">exp_expenditure_amount = #{expExpenditureAmount},</if>
<if test="expLkAmount != null">exp_lk_amount = #{expLkAmount},</if>
<if test="expBidArea != null">exp_bid_area = #{expBidArea},</if>
<if test="expExpenditureDate != null">exp_expenditure_date = #{expExpenditureDate},</if>
<if test="expExpenditureAmountUppercase != null">exp_expenditure_amount_uppercase = #{expExpenditureAmountUppercase},</if>
@ -331,6 +372,17 @@
</foreach>
</delete>
<delete id="deleteExpensesLkDetailByExpId" parameterType="String">
delete from expenses_lkdetail where exp_id = #{expId}
</delete>
<insert id="batchExpensesLkDetail">
insert into expenses_lkdetail( exp_lk_id, pz, pzDate, year,customerBm, customerName, salesmanBm,salesmanName, amount,checkAmount,remark,exp_id) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.expLkId}, #{item.pz}, #{item.pzDate}, #{item.year}, #{item.customerBm}, #{item.customerName}, #{item.salesmanBm}, #{item.salesmanName}, cast(#{item.amount,jdbcType=DECIMAL} as decimal(18,3)), cast(#{item.checkAmount,jdbcType=DECIMAL} as decimal(18,3)),#{item.remark}, #{item.expId})
</foreach>
</insert>
<select id="getCode" resultType="String" statementType="CALLABLE">
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
</select>

View File

@ -73,13 +73,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
from [rb_product_price] A
left join rb_productVersion B on A.version_uid_0=B.uid_0
where B.sta_0=1
<if test="name_0 != null and name_0 != ''">
and A.型号 like '%${name_0}%'
</if>
<if test="model != null and model != ''">
and A.规格 = #{model}
</if>
where B.sta_0=1 and
<foreach item="item" collection="list" open="(" separator=" and " close=")">
A.namevoltage like '%${item}%'
</foreach>
order by len(A.namevoltage)
</select>

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Aug 15 09:33:59 CST 2024
#Fri Aug 16 15:04:24 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-system

View File

@ -47,6 +47,7 @@ com\ruoyi\redBook\service\impl\AsyncRbTaskService.class
com\ruoyi\system\mapper\SysUserRoleMapper.class
com\ruoyi\system\service\impl\SysDictTypeServiceImpl.class
com\ruoyi\system\service\ISysNoticeService.class
com\ruoyi\expenses\domain\lk\Payment.class
com\ruoyi\bid\domain\SysOaBidTb.class
com\ruoyi\quot\domain\jsw\QuotJswResult.class
com\ruoyi\system\service\ISysDictDataService.class
@ -166,6 +167,7 @@ com\ruoyi\priceVerification\service\impl\BidHjServiceImpl.class
com\ruoyi\system\service\impl\SysOperLogServiceImpl.class
com\ruoyi\quot\domain\jsw\QuotJswFiles.class
com\ruoyi\material\domain\material.class
com\ruoyi\expenses\domain\ExpensesLkDetail.class
com\ruoyi\technicalConfirm\domain\QuotJsqrXzRemark.class
com\ruoyi\system\mapper\SysDictDataMapper.class
com\ruoyi\system\service\ISysOperLogService.class

View File

@ -127,6 +127,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\service\
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\service\ISysUserService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\registeredCompany\domain\RegisteredCompany.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\bid\service\impl\BidServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\domain\ExpensesLkDetail.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quote\service\impl\QuoteServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\zgys\domain\Zgys.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\bid\service\IBidService.java
@ -199,6 +200,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\sysSapUser\doma
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\authorize\service\impl\AuthorizeFileServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\bid\domain\BidTbHistory.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\mapper\SysRoleMenuMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\domain\lk\Payment.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\material\service\impl\CMaterialServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\redBook\service\IRedBookService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\materialType\domain\CMaterialType.java

View File

@ -107,5 +107,14 @@ export function bankCodeList(query) {
})
}
// 获取来款信息数据
export function lkList(query) {
return request({
url: '/rfc/rfc/lkList',
method: 'get',
params: query
})
}

View File

@ -1,5 +1,15 @@
import request from '@/utils/request'
// 金额计算
export function toDecimal(x){
let f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x*100)/100;
return f;
}
// 分派
export function expAssign(query) {
return request({

View File

@ -1,5 +1,5 @@
<template>
<el-table height="100%" v-loading="loading" :data="records" :span-method="objectSpanMethod">
<el-table height="500" v-loading="loading" :data="records" :span-method="objectSpanMethod">
<el-table-column label="变更事件" align="center" prop="title"/>
<el-table-column label="变更日期" align="center" prop="changeTime"/>
<el-table-column label="变更字段" align="center" prop="changeField"/>

View File

@ -526,6 +526,44 @@
</el-col>
</el-row>
<div v-hasPermi="['expenses:expenses:lkInfo']">
<el-divider content-position="left" class="customer_divider_text">
来款信息
<span v-if="checkPermi(['expenses:expenses:selSaveLkInfo'])">
<el-button size="mini" style="margin-left: 10px" type="primary" plain @click="openLk">选择来款数据</el-button>
<el-button size="mini" style="margin-left: 10px" @click="saveForm">保存</el-button>
<el-tag style="margin-left: 10px" type="success">已确认金额:{{sumExpLkAmount}}</el-tag>
</span>
</el-divider>
<el-input v-model="form.expLkAmount" v-if="false"/>
<el-table :data="expensesLkDetailList" height="300px">
<el-table-column fixed label="操作" width="50px">
<template slot-scope="scope">
<el-button :key="Math.random()" size="small" type="text">
<a @click="deleteExpensesLkDetail(scope.$index)">删除</a>
</el-button>
</template>
</el-table-column>
<el-table-column fixed prop="pz" label="凭证号" width="120"/>
<el-table-column fixed prop="pzDate" label="凭证日期" width="120"/>
<el-table-column prop="year" label="年度" width="100"/>
<el-table-column prop="customerBm" label="客户编码" v-if="false"/>
<el-table-column prop="customerName" label="客户名称" width="300"/>
<el-table-column prop="salesmanBm" label="业务员编码" v-if="false"/>
<el-table-column prop="salesmanName" label="业务员" width="150"/>
<el-table-column prop="amount" label="来款金额" width="100"/>
<el-table-column prop="checkAmount" label="确认金额" width="120">
<template slot-scope="scope">
<el-form-item class="offset" :prop="'expensesLkDetailList.' + scope.$index + '.checkAmount'" :rules="rules.checkAmount" label-width="0" >
<el-input v-model="scope.row.checkAmount" placeholder="确认金额"/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="remark" label="财务备注" width="300"/>
</el-table>
</div>
<!-- 资格预审单列表对话框-->
<el-dialog :title="zgysTitle" :visible.sync="zgysOpen" width="1000px" append-to-body>
<el-form :model="zgysQueryParams" size="small" :inline="true" label-width="100px" @submit.native.prevent>
@ -626,6 +664,58 @@
<el-button @click="bidCancel"> </el-button>
</div>
</el-dialog>
<!-- 业务员来款信息单列表对话框-->
<el-dialog :title="lkTitle" :visible.sync="lkOpen" width="1000px" append-to-body>
<el-form :model="lkQueryParams" size="small" :inline="true" label-width="100px" @submit.native.prevent>
<el-form-item label="凭证日期">
<el-date-picker
v-model="daterangePzDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@clear="clearDaterangePzDate"
></el-date-picker>
</el-form-item>
<el-form-item label="客户名称" prop="customerName">
<el-input
v-model="lkQueryParams.customerName"
placeholder="请输入客户名称"
@keyup.enter.native="getLkList"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getLkList">搜索</el-button>
</el-form-item>
</el-form>
<el-table class="down" v-loading="lkLoading" ref="lkTable" :data="lkPagedData" @selection-change="handleSelectionLkChange" border stripe style="width: 100%;margin-top: 10px;" height="350px">
<el-table-column type="selection" width="55" align="center" />
<el-table-column fixed prop="pz" label="凭证号" width="120"/>
<el-table-column fixed prop="pzDate" label="凭证日期" width="120"/>
<el-table-column prop="year" label="年度" width="100"/>
<el-table-column prop="customerBm" label="客户编码" v-if="false"/>
<el-table-column prop="customerName" label="客户名称" width="300"/>
<el-table-column prop="salesmanBm" label="业务员编码" v-if="false"/>
<el-table-column prop="salesmanName" label="业务员" width="150"/>
<el-table-column prop="amount" label="来款金额" width="100"/>
<el-table-column prop="remark" label="财务备注" width="300"/>
</el-table>
<pagination
v-show="lkTotal>0"
:total="lkTotal"
:page.sync="lkCurrentPage"
:limit.sync="lkPageSize"
@size-change="handleLkSizeChange"
@current-change="handleLkCurrentChange"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="lkConfirm" :disabled="lkSingle"> </el-button>
<el-button @click="lkCancel"> </el-button>
</div>
</el-dialog>
</el-form>
<div slot="footer" class="dialog-footer">
<!-- 业务员提交保存-->
@ -635,12 +725,10 @@
<!-- 投标提交OA驳回-->
<span style="margin-left: 10px" v-hasPermi="['expenses:expenses:commitOA']"><el-button type="primary" plain @click="commitFormOA" v-if="this.form.expApprovalStatus == '1'&&this.form.expOaApprovalStatus == '0'">提交至OA</el-button></span>
<span style="margin-left: 10px" v-hasPermi="['expenses:expenses:reject']"><el-button type="danger" plain @click="rejectForm" v-if="this.form.expApprovalStatus == '1'&&this.form.expOaApprovalStatus != '1'">驳回</el-button></span>
</div>
<!--选择业务员对话框-->
<PeopleSelect v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenSelectYwy" @cancel="peopleOpenSelectYwy=false" @submit="submitPeopleSelectYwy"></PeopleSelect>
<!-- 客户选择对话框-->
<CustomerSelect ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect>
</el-dialog>
@ -650,7 +738,7 @@
<ChangeRecord :codeProp="codeProp"></ChangeRecord>
</el-dialog>
<!--投标信息分派选择人员对话框-->
<!--费用支出信息分派选择人员对话框-->
<PeopleSelect v-if="checkRole(['BID'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenFp" @cancel="peopleOpenFp=false" @submit="submitPeopleFp"></PeopleSelect>
</div>
</template>
@ -670,6 +758,11 @@
font-size: 18px;
font-weight: 600;
}
/* 根据需求设置位置上下偏移 */
.offset {
margin-top: 0px; /* 向上偏移5像素 */
margin-bottom: 0px; /* 向下偏移5像素 */
}
</style>
<script>
import { getToken } from "@/utils/auth";
@ -678,7 +771,9 @@ 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, expensesFileList, expensesFileDelete, oaOfficeStaff } from "@/api/expenses/expenses";
import { lkList } from "@/api/common/sapRfc";// sap-rfc
import { toDecimal, listExpenses, getExpenses, delExpenses, addExpenses, updateExpenses, commitExp, rejectExp, commitExpOA, expAssign, expensesFileList, expensesFileDelete, oaOfficeStaff } from "@/api/expenses/expenses";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入变更记录组件 */
@ -715,6 +810,8 @@ export default {
total: 0,
//
expensesList: [],
// -
expensesLkDetailList: [],
//
title: "",
//
@ -794,7 +891,15 @@ export default {
],
expDepositBank: [
{ required: true, message: "开户银行不能为空", trigger: "blur" }
]
],
checkAmount: [
{
pattern: /^(([1-9]{1}\d{0,9})|(0{1}))(\.\d{1,2})?$/,
message: "格式有误",
trigger: "blur"
}
],
},
/*expOtherRule: {
expBackOffice: [{ required: true, message: '选择内勤不能为空', trigger: 'blur' }],
@ -842,6 +947,26 @@ export default {
bidSingle: true,
bidMultiple: true,
//
lkTitle: "",
lkOpen: false,
lkLoading: false,
lkSelectedIndex: "",
lkTotal: 0,
lkCurrentPage: 1,
lkPageSize: 50,
lkList: [],
//
daterangePzDate: [],
lkQueryParams: {
pzDateBegin: null,
pzDateEnd: null,
customerName: null,
},
lkSingle: true,
lkMultiple: true,
//OA
oaOfficeStaff: [], // OA
@ -865,7 +990,7 @@ export default {
const roles = this.$store.state.user.roles;
if(roles.indexOf('SALES_MAN') == -1 && roles.indexOf('admin') == -1){//
if(roles.indexOf('BID')!= -1||roles.indexOf('BID_BSZZY')!= -1||roles.indexOf('BID_ZHGLY')!= -1){
this.queryParams.expBidArea = '0';//
//this.queryParams.expBidArea = '0';//
}
if(roles.indexOf('FOREIGN_TRADE')!= -1){
this.queryParams.expBidArea = '1';//
@ -919,6 +1044,7 @@ export default {
expReturnDate: null,
expExpenditureType: null,
expExpenditureAmount: null,
expLkAmount: null,
expBidArea: null,
expExpenditureDate: null,
expExpenditureAmountUppercase: null,
@ -951,6 +1077,7 @@ export default {
//
this.tbDis = false;
this.expensesLkDetailList = [];
this.expensesYwyFileList = [],
this.resetForm("form");
},
@ -1023,6 +1150,7 @@ export default {
}
}
this.expensesLkDetailList = response.data.expensesLkDetailList;
this.getExpYwyFileList();
});
},
@ -1038,6 +1166,10 @@ export default {
saveForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.expensesLkDetailList = this.expensesLkDetailList;
const allPrice = this.expensesLkDetailList.reduce((sum, row) => sum + parseFloat(row.checkAmount), 0);
this.form.expLkAmount = toDecimal(allPrice);
if (this.form.expId != null) {
updateExpenses(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
@ -1145,6 +1277,11 @@ export default {
this.customerOpen=false;
},
//
clearDaterangePzDate(){
this.daterangePzDate = [];
},
/*********************************打开选人弹窗-分派*****************************************/
//-
openPeopleSelect(){
@ -1263,6 +1400,79 @@ export default {
}
},
/*********************************打开投标信息列表选择*****************************************/
/*********************************打开来款信息列表选择*****************************************/
openLk(){
this.lkOpen=true;
this.lkTitle="选择来款信息";
this.resetLkQuery();
},
/** 切换每页显示条数 */
handleLkSizeChange(val) {
this.lkPageSize = val;
this.lkCurrentPage = 1;
},
/** 页码选择 */
handleLkCurrentChange(val) {
this.lkCurrentPage = val;
},
getLkList(){
this.lkLoading = true;
if (null != this.daterangePzDate && '' != this.daterangePzDate) {
this.lkQueryParams.pzDateBegin = this.daterangePzDate[0];
this.lkQueryParams.pzDateEnd = this.daterangePzDate[1];
}
lkList(this.lkQueryParams).then(response => {
this.lkList = response.rows;
this.lkTotal = response.total;
this.lkCurrentPage = 1;
this.lkLoading = false;
},response => {
this.lkLoading = false;
});
},
handleSelectionLkChange(selection) {
this.lkSingle = selection.length!==1
this.lkMultiple = !selection.length
},
lkConfirm() {
const lkTable = this.$refs.lkTable;
let selectedData = lkTable.selection;
let that = this;
selectedData.forEach((row, index) => {
const rowDate = {
pz: row.pz,
pzDate: row.pzDate,
year: row.year,
customerBm: row.customerBm,
customerName: row.customerName,
salesmanBm: row.salesmanBm,
salesmanName: row.salesmanName,
amount: row.amount,
remark: row.remark,
}
that.expensesLkDetailList.push(rowDate);
})
this.lkOpen = false;
},
//
lkCancel() {
this.lkOpen = false;
this.resetLkQuery();
},
/** 重置按钮操作 */
resetLkQuery() {
this.lkList = [];
this.lkQueryParams = {
//
salesmanBm: this.form.expSalesmanBm
}
},
deleteExpensesLkDetail(index){
this.expensesLkDetailList.splice(index, 1)
},
/*********************************打开来款信息列表选择*****************************************/
/*********************************附件上传操作*****************************************/
//
uploadFile(activeName){
@ -1319,6 +1529,19 @@ export default {
}
},
/*********************************附件上传操作*****************************************/
},
computed: {
//
lkPagedData() {
const startIndex = (this.lkCurrentPage - 1) * this.lkPageSize;
const endIndex = startIndex + this.lkPageSize;
return this.lkList.slice(startIndex, endIndex);
},
//
sumExpLkAmount() {
const allPrice = this.expensesLkDetailList.reduce((sum, row) => sum + parseFloat((row.checkAmount == null||row.checkAmount == '')?0:row.checkAmount), 0);
return toDecimal(allPrice);
},
}
};
</script>