This commit is contained in:
xd 2024-08-12 17:22:13 +08:00
parent 398f6add0b
commit 6fe5c5c1c0
43 changed files with 529 additions and 189 deletions

View File

@ -2,9 +2,10 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1ea72584-8a6e-4fb7-9928-17671c0b6e92" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/ruoyi-ui/src/utils/number-cn.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ABAP_AS_WITH_POOL.jcoDestination" beforeDir="false" afterPath="$PROJECT_DIR$/ABAP_AS_WITH_POOL.jcoDestination" afterDir="false" />
<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 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/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/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" />
@ -17,24 +18,31 @@
<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/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/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/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/authorize/AuthorizeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/authorize/AuthorizeMapper.xml" 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/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/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/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/authorize/AuthorizeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/authorize/AuthorizeMapper.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/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/components/Tools/PeopleSelect/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/components/Tools/PeopleSelect/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" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -83,11 +91,11 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
<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" />
<recent name="com.ruoyi.quartz.task" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest\ruoyi-quartz\src\main\resources\mapper\quartz" />
@ -132,7 +140,7 @@
<workItem from="1723188538030" duration="717000" />
<workItem from="1723192814263" duration="1896000" />
<workItem from="1723420788933" duration="2164000" />
<workItem from="1723422983942" duration="13968000" />
<workItem from="1723422983942" duration="22000000" />
</task>
<servers />
</component>
@ -145,86 +153,86 @@
</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="1723442836803">
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser" timestamp="1723450428704">
<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="1723180202517" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723442836803" />
<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="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="1090" height="539" key="DebuggerActiveHint" timestamp="1723100577304">
<screen x="0" y="0" width="1920" height="1040" />
<state width="410" height="466" key="DebuggerActiveHint" timestamp="1723446271190">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1090" height="539" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723100577304" />
<state width="360" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722820599424" />
<state width="410" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446271190" />
<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="76" key="GridCell.Tab.0.bottom" timestamp="1723443985608">
<state width="1396" height="219" key="GridCell.Tab.0.bottom" timestamp="1723450966704">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.0.center" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.0.left" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.0.right" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.1.bottom" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.1.center" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.1.left" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1396" height="76" key="GridCell.Tab.1.right" timestamp="1723443985608">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="938" height="423" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723442658053" />
<state width="1396" height="76" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723443985608" />
<state width="1876" height="39" key="GridCell.Tab.2.bottom" timestamp="1723185397663">
<screen x="0" y="0" width="1920" height="1040" />
<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="1396" height="250" key="GridCell.Tab.2.bottom" timestamp="1723446476877">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="39" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723185397663" />
<state width="1876" height="288" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017774091" />
<state width="1876" height="39" key="GridCell.Tab.2.center" timestamp="1723185397663">
<screen x="0" y="0" width="1920" height="1040" />
<state width="1396" height="250" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446476877" />
<state width="1396" height="250" key="GridCell.Tab.2.center" timestamp="1723446476877">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="39" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723185397663" />
<state width="1876" height="288" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017774091" />
<state width="1876" height="39" key="GridCell.Tab.2.left" timestamp="1723185397663">
<screen x="0" y="0" width="1920" height="1040" />
<state width="1396" height="250" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446476877" />
<state width="1396" height="250" key="GridCell.Tab.2.left" timestamp="1723446476877">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="39" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723185397663" />
<state width="1876" height="288" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017774091" />
<state width="1876" height="39" key="GridCell.Tab.2.right" timestamp="1723185397663">
<screen x="0" y="0" width="1920" height="1040" />
<state width="1396" height="250" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446476877" />
<state width="1396" height="250" key="GridCell.Tab.2.right" timestamp="1723446476877">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="39" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723185397663" />
<state width="1876" height="288" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017774091" />
<state width="1396" height="250" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723446476877" />
<state x="2203" y="104" key="Maven.ArtifactSearchDialog" timestamp="1722820075785">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -255,11 +263,15 @@
</state>
<state x="128" y="-15" width="1092" height="856" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723108970295" />
<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" key="dock-window-3" timestamp="1723100033361">
<screen x="1920" y="0" width="1440" height="900" />
<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>
<state x="1920" y="0" width="1456" height="989" key="dock-window-3/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723100033361" />
<state x="597" y="332" width="1083" height="875" key="dock-window-3/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017774201" />
<state x="672" y="0" width="1087" height="876" maximized="true" key="dock-window-3/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723447930976" />
<state x="715" y="0" width="1093" height="875" maximized="true" key="dock-window-4" timestamp="1723450569564">
<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">
<screen x="1920" y="0" width="1440" height="900" />
</state>

View File

@ -70,33 +70,6 @@ public class BidController extends BaseController
@Autowired
private RedisCache redisCache;
/**
* 分派
*/
/*@PreAuthorize("@ss.hasPermi('bid:bid:assign')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
@PostMapping("/bidAssign")
public AjaxResult bidAssign(@RequestBody Bid bid)
{
String[] bidIds = bid.getBidIds();
String receiveUserName = bid.getReceiveUserName();
String receiveUserNickName = bid.getReceiveUserNickName();
for(String bidId:bidIds){
Bid entity = bidService.selectBidByBidId(bidId);
if(!"1".equals(entity.getBidApprovalStatus())){
return error("投标信息:"+entity.getBidCode()+" 当前状态不是协助中");
}
entity.setSetReceiveUser("0");//更新 是否已分派 为已分派
entity.setReceiveUserName(receiveUserName);
entity.setReceiveUserNickName(receiveUserNickName);
bidService.updateBid(entity);
}
return success();
}*/
/**
* 复制投标信息
* @param bid
@ -150,13 +123,6 @@ public class BidController extends BaseController
public TableDataInfo list(Bid bid)
{
startPage();
/*// 获取用户角色 --判断是否有新建权限
Boolean bidBszzYRoleFlag = SecurityUtils.hasRole("BID_BSZZY");
Boolean adminRoleFlag = SecurityUtils.hasRole("admin");
if(bidBszzYRoleFlag&&!adminRoleFlag){
bid.setSetReceiveUser("0");
bid.setReceiveUserName(getUsername());
}*/
List<Bid> list = bidService.selectBidList(bid);
return getDataTable(list);
}

View File

@ -3,10 +3,14 @@ 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.core.domain.entity.SysDept;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.expenses.domain.SysOaExpenses;
import com.ruoyi.framework.changeRecord.ChangeRecordLog;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
@ -238,14 +242,83 @@ public class ExpensesController extends BaseController
}
}
/**
* 投标办提交OA按钮
*/
@PreAuthorize("@ss.hasPermi('expenses:expenses:commitOA')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.expenses.service.impl.ExpensesServiceImpl",
serviceImplMethod="selectExpensesByExpId",
tableId = "expId",codeName = "expCode",title = "投标办提交OA审批")
@PostMapping("/commitExpOA")
public AjaxResult commitAuthcommitExpOAorizeOA(@RequestBody Expenses expenses)
{
try{
String exp_oa_approval_status = expenses.getExpOaApprovalStatus();
if("1".equals(exp_oa_approval_status)){
return error("已提交OA审批中,请勿重复操作");
}
// 投标提交OA,插入中间表 sys_oa_authorize
SysOaExpenses sysOaExpenses = new SysOaExpenses();
SysOaAuthorize oauser = expensesService.selectOAUserByUserName(getUsername());// 查询OA用户
if(oauser==null){
return error("该账户:"+getUsername()+"在OA中不存在");
}
sysOaExpenses.setUserId(oauser.getUserId());
sysOaExpenses.setDepartmentId(oauser.getDepartmentId());
sysOaExpenses.setSubmissionTime(DateUtils.getDate());
sysOaExpenses.setCreateTime(DateUtils.getNowDate());
sysOaExpenses.setIsFinish("0");// 授权备案已提交OA审批中
//expensesService.insertSysOAAuthorize(sysOaAuthorize);
expenses.setExpOaApprovalStatus("1");//更新OA审批状态为审批中
expensesService.updateExpenses(expenses);
return success();
}catch (Exception e){
return error("系统异常");
}
}
/**
* 投标驳回
*/
@PreAuthorize("@ss.hasPermi('expenses:expenses:reject')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.expenses.service.impl.ExpensesServiceImpl",
serviceImplMethod="selectExpensesByExpId",
tableId = "expId",codeName = "expCode",title = "投标办驳回")
@PostMapping("/rejectExp")
public AjaxResult rejectExp(@RequestBody Expenses expenses)
{
String exp_return_remark = expenses.getExpReturnRemark();
if(StringUtils.isEmpty(exp_return_remark)){
return error("费用支出-驳回原因不能为空");
}
expenses.setExpApprovalStatus("3");
expensesService.updateExpenses(expenses);
return success();
}
/**
* 删除费用支出
*/
@PreAuthorize("@ss.hasPermi('expenses:expenses:remove')")
@Log(title = "费用支出", businessType = BusinessType.DELETE)
@Log(title = "费用支出删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{expIds}")
public AjaxResult remove(@PathVariable String[] expIds)
{
for(String expId:expIds){
Expenses expenses = expensesService.selectExpensesByExpId(expId);
if("1".equals(expenses.getExpApprovalStatus())){
return error("费用支出:"+expenses.getExpCode()+" 已提交,无法删除");
}else if("2".equals(expenses.getExpApprovalStatus())){
return error("费用支出:"+expenses.getExpCode()+" 已完成,无法删除");
}else if("3".equals(expenses.getExpApprovalStatus())){
return error("费用支出:"+expenses.getExpCode()+" 已被驳回,无法删除");
}
}
return toAjax(expensesService.deleteExpensesByExpIds(expIds));
}
}

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Mon Aug 12 14:13:40 CST 2024
#Mon Aug 12 16:20:22 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
#Mon Aug 12 14:13:23 CST 2024
#Mon Aug 12 16:20:04 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-common

View File

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

View File

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

View File

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

View File

@ -261,16 +261,6 @@ public class Bid extends BaseEntity
@DataName(name = "创建人")
private String createName;
/** 分派情况 0-已分派/1-未分派 */
@DataName(name = "分派情况",readConverterExp="0=已分派,1=未分派")
private String setReceiveUser;
/** 分派接收人 */
@DataName(name = "分派接收人账号")
private String receiveUserName;
@DataName(name = "分派接收人姓名")
private String receiveUserNickName;
/** 投标_投标状态 */
@Excel(name = "投标状态",dictType = "bid_status")
@DataName(name = "投标状态",readConverterExp="0=待投标,1=中标,2=未中标,3=流标,4=结果待定")
@ -725,15 +715,6 @@ public class Bid extends BaseEntity
public String getCreateName() { return createName; }
public void setCreateName(String createName) { this.createName = createName; }
public String getSetReceiveUser() { return setReceiveUser; }
public void setSetReceiveUser(String setReceiveUser) { this.setReceiveUser = setReceiveUser; }
public String getReceiveUserName() { return receiveUserName; }
public void setReceiveUserName(String receiveUserName) { this.receiveUserName = receiveUserName; }
public String getReceiveUserNickName() { return receiveUserNickName; }
public void setReceiveUserNickName(String receiveUserNickName) { this.receiveUserNickName = receiveUserNickName; }
public String getBidStatus() { return bidStatus; }
public void setBidStatus(String bidStatus) { this.bidStatus = bidStatus; }

View File

@ -0,0 +1,55 @@
package com.ruoyi.expenses.domain;
import com.ruoyi.common.annotation.DataName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 费用支出对象 expenses
*
* @author ruoyi
* @date 2024-07-30
*/
public class SysOaExpenses extends Expenses
{
/** oa用户id */
private Integer userId;
/** oa部门ID */
private Integer departmentId;
/** 提交oa时间 */
private String submissionTime;
/** 授权备案完成状态*/
private String isFinish;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
public String getSubmissionTime() {
return submissionTime;
}
public void setSubmissionTime(String submissionTime) {
this.submissionTime = submissionTime;
}
public String getIsFinish() {
return isFinish;
}
public void setIsFinish(String isFinish) {
this.isFinish = isFinish;
}
}

View File

@ -2,6 +2,7 @@ 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;
@ -74,4 +75,10 @@ public interface ExpensesMapper
* @return
*/
String getCodeExp(String type);
/**
* 查询OA用户
* @return
*/
SysOaAuthorize selectOAUserByUserName(String loginid);
}

View File

@ -2,6 +2,7 @@ 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;
@ -74,4 +75,10 @@ public interface IExpensesService
* @return
*/
String getCodeExp(String type);
/**
* 查询OA用户
* @return
*/
SysOaAuthorize selectOAUserByUserName(String username);
}

View File

@ -2,8 +2,11 @@ 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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -120,4 +123,14 @@ public class ExpensesServiceImpl implements IExpensesService
public String getCodeExp(String type) {
return expensesMapper.getCodeExp(type);
}
/**
* 查询OA用户
* @return
*/
@DataSource(DataSourceType.OA)
@Override
public SysOaAuthorize selectOAUserByUserName(String loginid) {
return expensesMapper.selectOAUserByUserName(loginid);
}
}

View File

@ -61,9 +61,6 @@
<result property="bidNotificationAward" column="bid_notification_award" />
<result property="bidRemark" column="bid_remark" />
<result property="bidReturnRemark" column="bid_returnRemark" />
<result property="setReceiveUser" column="set_receive_user" />
<result property="receiveUserName" column="receive_user_name" />
<result property="receiveUserNickName" column="receive_user_nick_name" />
<result property="bidStatus" column="bid_status" />
<result property="bidMatpriceDiff" column="bid_matprice_diff" />
<result property="bidVicePresidentApproved" column="bid_vice_president_approved" />
@ -121,8 +118,9 @@
a.bid_bond, a.bid_winning_service_fee, a.bid_performance_bond, a.bid_delivery_date,
a.bid_warranty_period, a.bid_bidding, a.bid_evaluation_method, a.bid_technical_require,
a.bid_price_linkage, a.bid_payment_method, a.bid_other_matters, a.bid_zbr, a.bid_jdr,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, a.bid_oa_approval_status,a.bid_matprice_diff, a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.set_receive_user,a.receive_user_name,a.receive_user_nick_name,a.bid_status,a.create_by,u.nick_name create_name, a.create_time,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, a.bid_oa_approval_status,a.bid_matprice_diff,
a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.bid_status,a.create_by,u.nick_name create_name, a.create_time,
a.update_by, a.update_time,
a.bid_jsxz_confirm_id,
@ -159,9 +157,8 @@
<if test="bidStatus != null and bidStatus != ''"> and bid_status = #{bidStatus}</if>
<if test="bidZbr != null and bidZbr != ''"> and bid_zbr like concat('%', #{bidZbr}, '%')</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''"> and bid_approval_status = #{bidApprovalStatus}</if>
<if test="createBy != null and createBy != ''"> and a.create_by = #{createBy}</if>
<!--<if test="setReceiveUser != null and setReceiveUser != ''"> and set_receive_user = #{setReceiveUser}</if>
<if test="receiveUserName != null and receiveUserName != ''"> and receive_user_name = #{receiveUserName}</if>-->
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
@ -232,9 +229,6 @@
<if test="bidNotificationAward != null">bid_notification_award,</if>
<if test="bidRemark != null">bid_remark,</if>
<if test="bidReturnRemark != null">bid_returnRemark,</if>
<if test="setReceiveUser != null">set_receive_user,</if>
<if test="receiveUserName != null">receive_user_name,</if>
<if test="receiveUserNickName != null">receive_user_nick_name,</if>
<if test="bidStatus != null">bid_status,</if>
<if test="bidVicePresidentApproved != null">bid_vice_president_approved,</if>
<if test="bidMatpriceDiff != null">bid_matprice_diff,</if>
@ -306,9 +300,6 @@
<if test="bidNotificationAward != null">#{bidNotificationAward},</if>
<if test="bidRemark != null">#{bidRemark},</if>
<if test="bidReturnRemark != null">#{bidReturnRemark},</if>
<if test="setReceiveUser != null">#{setReceiveUser},</if>
<if test="receiveUserName != null">#{receiveUserName},</if>
<if test="receiveUserNickName != null">#{receiveUserNickName},</if>
<if test="bidStatus != null">#{bidStatus},</if>
<if test="bidVicePresidentApproved != null">#{bidVicePresidentApproved},</if>
<if test="bidMatpriceDiff != null">#{bidMatpriceDiff},</if>
@ -605,9 +596,6 @@
<if test="bidNotificationAward != null">bid_notification_award = #{bidNotificationAward},</if>
<if test="bidRemark != null">bid_remark = #{bidRemark},</if>
<if test="bidReturnRemark != null">bid_returnRemark = #{bidReturnRemark},</if>
<if test="setReceiveUser != null">set_receive_user = #{setReceiveUser},</if>
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
<if test="receiveUserNickName != null">receive_user_nick_name = #{receiveUserNickName},</if>
<if test="bidStatus != null">bid_status = #{bidStatus},</if>
<if test="bidVicePresidentApproved != null">bid_vice_president_approved = #{bidVicePresidentApproved},</if>
<if test="bidOaRemark != null">bid_oa_remark = #{bidOaRemark},</if>

View File

@ -244,4 +244,8 @@
<select id="getCodeExp" resultType="String" statementType="CALLABLE">
{call GetSerialNo_Business(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaAuthorize">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}
</select>
</mapper>

View File

@ -69,6 +69,8 @@
<if test="params.beginPqOpeningDate != null and params.beginPqOpeningDate != '' and params.endPqOpeningDate != null and params.endPqOpeningDate != ''"> and pq_bid_date between #{params.beginPqOpeningDate} and #{params.endPqOpeningDate}</if>
<if test="pqZbr != null and pqZbr != ''"> and pq_zbr like concat('%', #{pqZbr}, '%')</if>
<if test="pqApprovalStatus != null and pqApprovalStatus != ''"> and pq_approval_status = #{pqApprovalStatus}</if>
<if test="createBy != null and createBy != ''"> and a.create_by = #{createBy}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>

View File

@ -61,9 +61,6 @@
<result property="bidNotificationAward" column="bid_notification_award" />
<result property="bidRemark" column="bid_remark" />
<result property="bidReturnRemark" column="bid_returnRemark" />
<result property="setReceiveUser" column="set_receive_user" />
<result property="receiveUserName" column="receive_user_name" />
<result property="receiveUserNickName" column="receive_user_nick_name" />
<result property="bidStatus" column="bid_status" />
<result property="bidMatpriceDiff" column="bid_matprice_diff" />
<result property="bidVicePresidentApproved" column="bid_vice_president_approved" />
@ -121,8 +118,9 @@
a.bid_bond, a.bid_winning_service_fee, a.bid_performance_bond, a.bid_delivery_date,
a.bid_warranty_period, a.bid_bidding, a.bid_evaluation_method, a.bid_technical_require,
a.bid_price_linkage, a.bid_payment_method, a.bid_other_matters, a.bid_zbr, a.bid_jdr,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, a.bid_oa_approval_status,a.bid_matprice_diff, a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.set_receive_user,a.receive_user_name,a.receive_user_nick_name,a.bid_status,a.create_by,u.nick_name create_name, a.create_time,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, a.bid_oa_approval_status,a.bid_matprice_diff,
a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.bid_status,a.create_by,u.nick_name create_name, a.create_time,
a.update_by, a.update_time,
a.bid_jsxz_confirm_id,
@ -159,9 +157,8 @@
<if test="bidStatus != null and bidStatus != ''"> and bid_status = #{bidStatus}</if>
<if test="bidZbr != null and bidZbr != ''"> and bid_zbr like concat('%', #{bidZbr}, '%')</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''"> and bid_approval_status = #{bidApprovalStatus}</if>
<if test="createBy != null and createBy != ''"> and a.create_by = #{createBy}</if>
<!--<if test="setReceiveUser != null and setReceiveUser != ''"> and set_receive_user = #{setReceiveUser}</if>
<if test="receiveUserName != null and receiveUserName != ''"> and receive_user_name = #{receiveUserName}</if>-->
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
@ -232,9 +229,6 @@
<if test="bidNotificationAward != null">bid_notification_award,</if>
<if test="bidRemark != null">bid_remark,</if>
<if test="bidReturnRemark != null">bid_returnRemark,</if>
<if test="setReceiveUser != null">set_receive_user,</if>
<if test="receiveUserName != null">receive_user_name,</if>
<if test="receiveUserNickName != null">receive_user_nick_name,</if>
<if test="bidStatus != null">bid_status,</if>
<if test="bidVicePresidentApproved != null">bid_vice_president_approved,</if>
<if test="bidMatpriceDiff != null">bid_matprice_diff,</if>
@ -306,9 +300,6 @@
<if test="bidNotificationAward != null">#{bidNotificationAward},</if>
<if test="bidRemark != null">#{bidRemark},</if>
<if test="bidReturnRemark != null">#{bidReturnRemark},</if>
<if test="setReceiveUser != null">#{setReceiveUser},</if>
<if test="receiveUserName != null">#{receiveUserName},</if>
<if test="receiveUserNickName != null">#{receiveUserNickName},</if>
<if test="bidStatus != null">#{bidStatus},</if>
<if test="bidVicePresidentApproved != null">#{bidVicePresidentApproved},</if>
<if test="bidMatpriceDiff != null">#{bidMatpriceDiff},</if>
@ -605,9 +596,6 @@
<if test="bidNotificationAward != null">bid_notification_award = #{bidNotificationAward},</if>
<if test="bidRemark != null">bid_remark = #{bidRemark},</if>
<if test="bidReturnRemark != null">bid_returnRemark = #{bidReturnRemark},</if>
<if test="setReceiveUser != null">set_receive_user = #{setReceiveUser},</if>
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
<if test="receiveUserNickName != null">receive_user_nick_name = #{receiveUserNickName},</if>
<if test="bidStatus != null">bid_status = #{bidStatus},</if>
<if test="bidVicePresidentApproved != null">bid_vice_president_approved = #{bidVicePresidentApproved},</if>
<if test="bidOaRemark != null">bid_oa_remark = #{bidOaRemark},</if>

View File

@ -244,4 +244,8 @@
<select id="getCodeExp" resultType="String" statementType="CALLABLE">
{call GetSerialNo_Business(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaAuthorize">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}
</select>
</mapper>

View File

@ -69,6 +69,8 @@
<if test="params.beginPqOpeningDate != null and params.beginPqOpeningDate != '' and params.endPqOpeningDate != null and params.endPqOpeningDate != ''"> and pq_bid_date between #{params.beginPqOpeningDate} and #{params.endPqOpeningDate}</if>
<if test="pqZbr != null and pqZbr != ''"> and pq_zbr like concat('%', #{pqZbr}, '%')</if>
<if test="pqApprovalStatus != null and pqApprovalStatus != ''"> and pq_approval_status = #{pqApprovalStatus}</if>
<if test="createBy != null and createBy != ''"> and a.create_by = #{createBy}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>

View File

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

View File

@ -112,6 +112,7 @@ com\ruoyi\quot\service\IQuotService.class
com\ruoyi\customer\domain\qcc\QccVerifyJsonResult.class
com\ruoyi\system\mapper\SysRoleMenuMapper.class
com\ruoyi\customer\domain\Customer.class
com\ruoyi\expenses\domain\SysOaExpenses.class
com\ruoyi\zgys\domain\SysOaZgys.class
com\ruoyi\technicalConfirm\mapper\QuotJsqrMapper.class
com\ruoyi\expenses\mapper\ExpensesMapper.class

View File

@ -88,6 +88,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\clMaterial\serv
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\redBook\domain\OAQuotProduct.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\domain\SysUserRole.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\authorize\domain\SysOaAuthorize.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\expenses\domain\SysOaExpenses.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\service\impl\SysOperLogServiceImpl.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\material\mapper\CMaterialMapper.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\domain\qcc\Verify.java

View File

@ -1,14 +1,5 @@
import request from '@/utils/request'
// 分派
export function bidAssign(query) {
return request({
url: '/bid/bid/bidAssign',
method: 'post',
data: query
})
}
// 复制投标信息
export function copyRecord(query) {
return request({

View File

@ -60,3 +60,21 @@ export function commitExp(data) {
data: data
})
}
//投标办经理提交OA按钮
export function commitExpOA(data) {
return request({
url: '/expenses/expenses/commitExpOA',
method: 'post',
data: data
})
}
//驳回按钮
export function rejectExp(data) {
return request({
url: '/expenses/expenses/rejectExp',
method: 'post',
data: data
})
}

View File

@ -811,7 +811,7 @@ export default {
},
//-
submitPeopleSelectYwy(peopleList,nickNameList){
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
this.selectedPeoples = nickNameList;
this.selectedPeoples = this.unique(this.selectedPeoples)
this.form.doaSalesmanName = this.selectedPeoples[0].nickName;
this.form.doaSalesmanBm = this.selectedPeoples[0].sapUserBm;

View File

@ -1185,9 +1185,6 @@
</el-dialog>
<!--投标信息分派选择人员对话框-->
<PeopleSelect v-if="checkRole(['BID'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenFp" @cancel="peopleOpenFp=false" @submit="submitPeopleFp"></PeopleSelect>
<!--投标信息变更记录对话框-->
<el-dialog :title="changeRecordTitle" :visible.sync="openChangeRecord" v-if="openChangeRecord" width="1200px" append-to-body>
<ChangeRecord :codeProp="codeProp"></ChangeRecord>
@ -1245,7 +1242,7 @@
import { checkPermi,checkRole } from '@/utils/permission';//
import { getToken } from "@/utils/auth";
import { listZgys} from "@/api/zgys/zgys";
import { versionList,getTongLvPrice,bidAssign,updateListBid,copyRecord, listBid, getBid, delBid, confirmBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx, bidJsqrCheckInfo,bidHistoryInfo, commitJsBid, commitHjBid, commitOA, rejectBid } from "@/api/bid/bid";
import { versionList,getTongLvPrice,updateListBid,copyRecord, listBid, getBid, delBid, confirmBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx, bidJsqrCheckInfo,bidHistoryInfo, commitJsBid, commitHjBid, commitOA, rejectBid } from "@/api/bid/bid";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入技术确认单详情组件*/
@ -1273,7 +1270,7 @@ export default {
'PeopleSelect': PeopleSelect,
'ChangeRecord':ChangeRecord
},
dicts: ['bid_set_receive_user','bid_has_registration','bid_approval_status','bid_oa_approval_status','bid_hj_approval_status','bid_online_quotation','bid_copper_price_linkage','bid_open_close','bid_bidding','bid_notification_award','bid_status','bid_jsxz_group','bid_jsxz_approval_status','bid_jsqr_check_state','bid_oa_istp'],
dicts: ['bid_has_registration','bid_approval_status','bid_oa_approval_status','bid_hj_approval_status','bid_online_quotation','bid_copper_price_linkage','bid_open_close','bid_bidding','bid_notification_award','bid_status','bid_jsxz_group','bid_jsxz_approval_status','bid_jsqr_check_state','bid_oa_istp'],
data() {
return {
//
@ -1388,7 +1385,6 @@ export default {
showQt: false,
//
peopleOpenFp:false, //
peopleOpenSelectYwy:false, //
selectedPeoples:[],
@ -1984,30 +1980,13 @@ export default {
},
/*********************************附件列表数据展示、上传*****************************************/
/*********************************打开选人弹窗-分派*****************************************/
//-
openPeopleSelect(){
this.peopleOpenFp=true;
},
//- submitPeople(nikeNamelist) submitPeople(peopleList,nikeNamelist)
submitPeopleFp(peopleList,nickNameList){
const receiveUserName = nickNameList[0].userName;
const receiveUserNickName = nickNameList[0].nickName;
const bidIds = this.ids;
const param = {'receiveUserName':receiveUserName,'receiveUserNickName':receiveUserNickName,'bidIds':bidIds}
bidAssign(param).then(response => {
this.$modal.msgSuccess("分派成功");
this.peopleOpenFp=false;
this.getList();
})
},
//-
openPeopleSelectYwy(){
this.peopleOpenSelectYwy=true;
},
//-
submitPeopleSelectYwy(peopleList,nickNameList){
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
this.selectedPeoples = nickNameList;
this.selectedPeoples = this.unique(this.selectedPeoples)
this.form.bidSalesmanName = this.selectedPeoples[0].nickName;
this.form.bidSalesmanBm = this.selectedPeoples[0].sapUserBm;

View File

@ -204,12 +204,12 @@
<span>{{ parseTime(scope.row.expExpenditureDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="分派状态" align="center" prop="expDispatchStatus" width="100px">
<el-table-column label="分派状态" align="center" prop="expDispatchStatus" width="100px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.exp_dispatch_status" :value="scope.row.expDispatchStatus"/>
</template>
</el-table-column>
<el-table-column label="分派接收人" align="center" prop="expReceiveUserNickName" width="100px"/>
<el-table-column label="分派接收人" align="center" prop="expReceiveUserNickName" width="100px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="OA审批状态" align="center" prop="expOaApprovalStatus" width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.exp_oa_approval_status" :value="scope.row.expOaApprovalStatus"/>
@ -240,7 +240,7 @@
<dict-tag :options="dict.type.exp_approval_status" :value="this.form.expApprovalStatus"/>
</el-form-item>
</el-col>
<el-col :span="4" v->
<el-col :span="4" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-form-item label="分派状态" prop="expDispatchStatus">
<dict-tag :options="dict.type.exp_dispatch_status" :value="this.form.expDispatchStatus"/>
</el-form-item>
@ -279,12 +279,16 @@
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="资格预审编号" prop="expPqCode">
<el-input v-model="form.expPqCode" placeholder="请输入资格预审编号" :disabled="ywyDis||tbDis"/>
<el-input v-model="form.expPqCode" placeholder="请输入资格预审编号" :disabled="true">
<el-button slot="append" icon="el-icon-search" @click="openZgys" v-if="!ywyDis&&!tbDis"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="标书编号" prop="expBidCode">
<el-input v-model="form.expBidCode" placeholder="请输入标书编号" :disabled="ywyDis||tbDis"/>
<el-input v-model="form.expBidCode" placeholder="请输入标书编号" :disabled="true">
<el-button slot="append" icon="el-icon-search" @click="openBid" v-if="!ywyDis&&!tbDis"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
@ -442,12 +446,117 @@
</el-form-item>
</el-col>
</el-row>
<!-- 资格预审单列表对话框-->
<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>
<el-form-item label="资格预审编号" prop="pqNumber">
<el-input
v-model="zgysQueryParams.pqNumber"
placeholder="请输入资格预审编号"
@keyup.enter.native="getZgysList"
clearable
/>
</el-form-item>
<el-form-item label="客户名称" prop="pqCustomerName">
<el-input
v-model="zgysQueryParams.pqCustomerName"
placeholder="请输入客户名称"
@keyup.enter.native="getZgysList"
clearable
/>
</el-form-item>
<el-form-item label="项目" prop="pqProject">
<el-input
v-model="zgysQueryParams.pqProject"
placeholder="请输入项目"
@keyup.enter.native="getZgysList"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getZgysList">搜索</el-button>
</el-form-item>
</el-form>
<el-table class="down" v-loading="zgysLoading" ref="zgysTable" :data="zgysList" @selection-change="handleSelectionZgysChange" border stripe style="width: 100%;margin-top: 10px;" height="350px">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="pqNumber" label="资格预审单编号" width="150px"></el-table-column>
<el-table-column prop="pqCustomerName" label="客户名称"/>
<el-table-column prop="pqProject" label="项目名称"></el-table-column>
<el-table-column prop="pqAuthorizedRepresentative" label="授权人" width="150px"></el-table-column>
</el-table>
<pagination
v-show="zgysTotal>0"
:total="zgysTotal"
:page.sync="zgysQueryParams.pageNum"
:limit.sync="zgysQueryParams.pageSize"
@pagination="getZgysList"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="zgysConfirm" :disabled="zgysSingle"> </el-button>
<el-button @click="zgysCancel"> </el-button>
</div>
</el-dialog>
<!-- 投标信息单列表对话框-->
<el-dialog :title="bidTitle" :visible.sync="bidOpen" width="1000px" append-to-body>
<el-form :model="bidQueryParams" size="small" :inline="true" label-width="100px" @submit.native.prevent>
<el-form-item label="标书编号" prop="bidNumber">
<el-input
v-model="bidQueryParams.bidNumber"
placeholder="请输入标书编号"
@keyup.enter.native="getBidList"
clearable
/>
</el-form-item>
<el-form-item label="客户名称" prop="bidTenderingUnit">
<el-input
v-model="bidQueryParams.bidTenderingUnit"
placeholder="请输入客户名称"
@keyup.enter.native="getBidList"
clearable
/>
</el-form-item>
<el-form-item label="项目" prop="bidProject">
<el-input
v-model="bidQueryParams.bidProject"
placeholder="请输入项目"
@keyup.enter.native="getBidList"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getBidList">搜索</el-button>
</el-form-item>
</el-form>
<el-table class="down" v-loading="bidLoading" ref="bidTable" :data="bidList" @selection-change="handleSelectionBidChange" border stripe style="width: 100%;margin-top: 10px;" height="350px">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="bidNumber" label="标书编号" width="150px"></el-table-column>
<el-table-column prop="bidTenderingUnit" label="客户名称"/>
<el-table-column prop="bidProject" label="项目名称"></el-table-column>
<el-table-column prop="bidAuthorizedRepresentative" label="授权人" width="150px"></el-table-column>
</el-table>
<pagination
v-show="bidTotal>0"
:total="bidTotal"
:page.sync="bidQueryParams.pageNum"
:limit.sync="bidQueryParams.pageSize"
@pagination="getBidList"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="bidConfirm" :disabled="bidSingle"> </el-button>
<el-button @click="bidCancel"> </el-button>
</div>
</el-dialog>
</el-form>
<div slot="footer" class="dialog-footer">
<!-- 业务员提交保存-->
<span v-hasPermi="['expenses:expenses:save']"><el-button @click="saveForm" v-if="this.form.expApprovalStatus == '0' || this.form.expApprovalStatus == null || this.form.expApprovalStatus == '3'"> </el-button></span>
<span style="margin-left: 10px" v-hasPermi="['expenses:expenses:commit']"><el-button type="primary" plain @click="commitForm" v-if="this.form.expApprovalStatus == '0' || this.form.expApprovalStatus == null || this.form.expApprovalStatus == '3'"> </el-button></span>
<!-- 投标提交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>
<!--选择业务员对话框-->
@ -485,9 +594,12 @@
</style>
<script>
import { getToken } from "@/utils/auth";
import { listZgys} from "@/api/zgys/zgys";
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, expAssign } from "@/api/expenses/expenses";
import { listExpenses, getExpenses, delExpenses, addExpenses, updateExpenses, commitExp, rejectExp, commitExpOA, expAssign } from "@/api/expenses/expenses";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入变更记录组件 */
@ -614,6 +726,34 @@ export default {
ywyDis: false,
//
tbDis: false,
//
zgysTitle: "",
zgysOpen: false,
zgysLoading: false,
zgysTotal: 0,
zgysList: [],
zgysQueryParams: {
pageNum: 1,
pageSize: 10,
},
zgysSingle: true,
zgysMultiple: true,
//
bidTitle: "",
bidOpen: false,
bidLoading: false,
bidTotal: 0,
bidList: [],
bidQueryParams: {
pageNum: 1,
pageSize: 10,
},
bidSingle: true,
bidMultiple: true,
};
},
@ -694,6 +834,11 @@ export default {
updateBy: null,
updateTime: null
};
//
this.ywyDis = false;
//
this.tbDis = false;
this.resetForm("form");
},
/** 搜索按钮操作 */
@ -780,6 +925,27 @@ export default {
}
});
},
/** 投标办经理提交OA按钮 */
commitFormOA() {
this.$refs["form"].validate(valid => {
if (valid) {
commitExpOA(this.form).then(response => {
this.$modal.msgSuccess("提交成功");
this.open = false;
this.getList();
});
}
});
},
/** 投标驳回按钮 */
rejectForm() {
rejectExp(this.form).then(response => {
this.$modal.msgSuccess("驳回成功");
this.open = false;
this.getList();
});
},
/** 删除按钮操作 */
handleDelete(row) {
const expIds = row.expId || this.ids;
@ -854,7 +1020,7 @@ export default {
},
//-
submitPeopleSelectYwy(peopleList,nickNameList){
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
this.selectedPeoples = nickNameList;
this.selectedPeoples = this.unique(this.selectedPeoples)
this.form.expSalesmanName = this.selectedPeoples[0].nickName;
this.form.expSalesmanBm = this.selectedPeoples[0].sapUserBm;
@ -867,6 +1033,88 @@ export default {
return arr.filter((arr) => !res.has(arr.userName) && res.set(arr.userName, 1));
},
/*********************************打开选人弹窗-分派*****************************************/
/*********************************打开资格预审列表选择*****************************************/
openZgys(){
this.zgysOpen=true;
this.zgysTitle="选择资格预审单";
this.resetZgysQuery();
},
getZgysList(){
this.zgysLoading = true;
listZgys(this.zgysQueryParams).then(response => {
this.zgysList = response.rows;
this.zgysTotal = response.total;
this.zgysLoading = false;
});
},
handleSelectionZgysChange(selection) {
this.zgysSingle = selection.length!==1
this.zgysMultiple = !selection.length
},
zgysConfirm() {
const zgysTable = this.$refs.zgysTable;
const selectedData = zgysTable.selection;
this.form.expPqCode = selectedData[0].pqNumber;
this.zgysOpen = false;
},
//
zgysCancel() {
this.zgysOpen = false;
this.resetZgysQuery();
},
/** 重置按钮操作 */
resetZgysQuery() {
this.zgysList = [];
this.zgysQueryParams = {
pqNumber: "",
pqCustomerName: "",
pqProject: "",
pqApprovalStatus: '2',
createBy: this.form.createBy
}
},
/*********************************打开资格预审列表选择*****************************************/
/*********************************打开投标信息列表选择*****************************************/
openBid(){
this.bidOpen=true;
this.bidTitle="选择投标信息单";
this.resetBidQuery();
},
getBidList(){
this.bidLoading = true;
listBid(this.bidQueryParams).then(response => {
this.bidList = response.rows;
this.bidTotal = response.total;
this.bidLoading = false;
});
},
handleSelectionBidChange(selection) {
this.bidSingle = selection.length!==1
this.bidMultiple = !selection.length
},
bidConfirm() {
const bidTable = this.$refs.bidTable;
const selectedData = bidTable.selection;
this.form.expBidCode = selectedData[0].bidNumber;
this.bidOpen = false;
},
//
bidCancel() {
this.bidOpen = false;
this.resetBidQuery();
},
/** 重置按钮操作 */
resetBidQuery() {
this.bidList = [];
this.bidQueryParams = {
bidNumber: "",
bidTenderingUnit: "",
bidProject: "",
bidApprovalStatus: '2',
createBy: this.form.createBy
}
},
/*********************************打开投标信息列表选择*****************************************/
}
};
</script>

View File

@ -1998,7 +1998,7 @@ export default {
},
// submitPeople(nikeNamelist) submitPeople(peopleList,nikeNamelist)
submitPeople(peopleList,nickNameList){
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
this.selectedPeoples = nickNameList;
this.selectedPeoples = this.unique(this.selectedPeoples)
this.form.quotSalesmanName = this.selectedPeoples[0].nickName;
this.form.quotSalesmanBm = this.selectedPeoples[0].sapUserBm;

View File

@ -752,7 +752,7 @@ export default {
},
//-
submitPeopleSelectYwy(peopleList,nickNameList){
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
this.selectedPeoples = nickNameList;
this.selectedPeoples = this.unique(this.selectedPeoples)
this.form.pqSalesmanName = this.selectedPeoples[0].nickName;
this.form.pqSalesmanBm = this.selectedPeoples[0].sapUserBm;