This commit is contained in:
xd 2024-07-26 17:11:36 +08:00
parent 39705b6e80
commit 92929ac73b
45 changed files with 713 additions and 254 deletions

View File

@ -2,6 +2,7 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="0792c5b5-6584-435e-b687-895386b6c4de" name="Default Changelist" comment="11">
<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/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 beforePath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" afterDir="false" />
@ -9,21 +10,42 @@
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/ChangeRecordAspect.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/ChangeRecordAspect.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/ChangeRecordLog.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/ChangeRecordLog.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/DefaultContentParse.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/src/main/java/com/ruoyi/framework/changeRecord/DefaultContentParse.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/ChangeRecordAspect.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/ChangeRecordAspect.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/ChangeRecordLog.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/ChangeRecordLog.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/DefaultContentParse.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/classes/com/ruoyi/framework/changeRecord/DefaultContentParse.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/ruoyi-framework-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/ruoyi-framework-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-generator/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-generator/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-generator/target/ruoyi-generator-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-generator/target/ruoyi-generator-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-quartz/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-quartz/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-quartz/target/ruoyi-quartz-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-quartz/target/ruoyi-quartz-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysChangeRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysChangeRecord.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/system/SysChangeRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/system/SysChangeRecordMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/zgys/ZgysMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/zgys/ZgysMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/domain/Bid.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/domain/Bid.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/mapper/BidMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/mapper/BidMapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/service/IBidService.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/service/IBidService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/service/impl/BidServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/bid/service/impl/BidServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/system/domain/SysChangeRecord.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/system/domain/SysChangeRecord.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/bid/BidMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/bid/BidMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/system/SysChangeRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/system/SysChangeRecordMapper.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/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/assets/styles/ruoyi.scss" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/assets/styles/ruoyi.scss" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/main.js" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/main.js" 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/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/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" />
@ -91,10 +113,12 @@
<option name="notificationShown" value="true" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="E:\myproject\RuoYi-Vue\ruoyi-admin\src\main\resources\temp" />
<recent name="E:\myproject\RuoYi-Vue\ruoyi-ui\src\api\technicalConfirm\technicalConfirm" />
<recent name="E:\myproject\RuoYi-Vue\ruoyi-ui\src\views\technicalConfirm\technicalConfirm" />
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-quartz" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-generator" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-framework" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.ruoyi.web.controller.quot" />
@ -103,12 +127,11 @@
<recent name="com.ruoyi.web.controller.tool.quot" />
<recent name="com.ruoyi.quartz.domain" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-quartz" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-generator" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-framework" />
<key name="MoveFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\directive\tableFit" />
<recent name="E:\myproject\RuoYi-Vue\ruoyi-admin\src\main\resources\temp" />
<recent name="E:\myproject\RuoYi-Vue\ruoyi-ui\src\api\technicalConfirm\technicalConfirm" />
<recent name="E:\myproject\RuoYi-Vue\ruoyi-ui\src\views\technicalConfirm\technicalConfirm" />
</key>
</component>
<component name="RunManager">
@ -236,7 +259,9 @@
<workItem from="1721785568617" duration="1859000" />
<workItem from="1721791542825" duration="3331000" />
<workItem from="1721800088839" duration="12061000" />
<workItem from="1721866002818" duration="4744000" />
<workItem from="1721866002818" duration="24322000" />
<workItem from="1721951870703" duration="19853000" />
<workItem from="1721978213485" duration="5350000" />
</task>
<task id="LOCAL-00001" summary="11">
<created>1709259560561</created>
@ -285,10 +310,10 @@
</state>
<state x="414" y="174" width="1174" height="692" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1717740286739" />
<state x="746" y="151" width="1174" height="599" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721799805055" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser" timestamp="1721866675787">
<screen x="1920" y="0" width="1440" height="900" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser" timestamp="1721982281178">
<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="1718956126029" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721982281178" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721866675787" />
<state x="736" y="386" width="447" height="276" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1717554227324">
<screen x="0" y="0" width="1920" height="1040" />
@ -299,15 +324,19 @@
</state>
<state x="0" y="0" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1717651521430" />
<state x="1920" y="0" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1717644305671" />
<state x="715" y="221" key="#xdebugger.evaluate" timestamp="1721962740478">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="715" y="221" key="#xdebugger.evaluate/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721962740478" />
<state x="2339" y="21" width="953" height="879" key="CommitChangelistDialog2" timestamp="1721803892785">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="558" y="83" width="953" height="879" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719189659339" />
<state x="2339" y="21" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721803892785" />
<state width="515" height="466" key="DebuggerActiveHint" timestamp="1719192526685">
<state width="515" height="466" key="DebuggerActiveHint" timestamp="1721973792250">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="515" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719192526685" />
<state width="515" height="466" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721973792250" />
<state width="500" height="404" key="DebuggerActiveHint/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718700593253" />
<state x="184" y="0" width="1736" height="856" key="DiffContextDialog" timestamp="1718679587513">
<screen x="0" y="0" width="1920" height="1040" />
@ -319,66 +348,66 @@
</state>
<state x="854" y="153" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1717652588812" />
<state x="2561" y="132" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1719207686863" />
<state width="1396" height="184" key="GridCell.Tab.0.bottom" timestamp="1721870837109">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837109" />
<state width="1396" height="184" key="GridCell.Tab.0.center" timestamp="1721870837108">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837108" />
<state width="1396" height="184" key="GridCell.Tab.0.left" timestamp="1721870837108">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837108" />
<state width="1396" height="184" key="GridCell.Tab.0.right" timestamp="1721870837109">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837109" />
<state width="1396" height="184" key="GridCell.Tab.1.bottom" timestamp="1721870837110">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837110" />
<state width="1396" height="184" key="GridCell.Tab.1.center" timestamp="1721870837109">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837109" />
<state width="1396" height="184" key="GridCell.Tab.1.left" timestamp="1721870837109">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837109" />
<state width="1396" height="184" key="GridCell.Tab.1.right" timestamp="1721870837110">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="258" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721787656352" />
<state width="1396" height="184" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721870837110" />
<state width="1876" height="192" key="GridCell.Tab.2.bottom" timestamp="1719192930346">
<state width="1876" height="198" key="GridCell.Tab.0.bottom" timestamp="1721983363774">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="192" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719192930346" />
<state width="1396" height="171" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718789116643" />
<state width="1876" height="192" key="GridCell.Tab.2.center" timestamp="1719192930346">
<state width="1876" height="198" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983363774" />
<state width="962" height="173" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.0.center" timestamp="1721983363774">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="192" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719192930346" />
<state width="1396" height="171" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718789116643" />
<state width="1876" height="192" key="GridCell.Tab.2.left" timestamp="1719192930346">
<state width="1876" height="198" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983363774" />
<state width="962" height="173" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.0.left" timestamp="1721983363774">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="192" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719192930346" />
<state width="1396" height="171" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718789116643" />
<state width="1876" height="192" key="GridCell.Tab.2.right" timestamp="1719192930346">
<state width="1876" height="198" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983363774" />
<state width="962" height="173" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.0.right" timestamp="1721983363774">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="192" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1719192930346" />
<state width="1396" height="171" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718789116643" />
<state width="1876" height="198" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983363774" />
<state width="962" height="173" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.1.bottom" timestamp="1721983310877">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="198" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983310877" />
<state width="962" height="173" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.1.center" timestamp="1721983310877">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="198" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983310877" />
<state width="962" height="173" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.1.left" timestamp="1721983310877">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="198" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983310877" />
<state width="962" height="173" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="198" key="GridCell.Tab.1.right" timestamp="1721983310877">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="198" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721983310877" />
<state width="962" height="173" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="251" key="GridCell.Tab.2.bottom" timestamp="1721982338360">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="251" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721982338360" />
<state width="962" height="173" key="GridCell.Tab.2.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095677" />
<state width="1876" height="251" key="GridCell.Tab.2.center" timestamp="1721982338360">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="251" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721982338360" />
<state width="962" height="173" key="GridCell.Tab.2.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095677" />
<state width="1876" height="251" key="GridCell.Tab.2.left" timestamp="1721982338360">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="251" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721982338360" />
<state width="962" height="173" key="GridCell.Tab.2.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095676" />
<state width="1876" height="251" key="GridCell.Tab.2.right" timestamp="1721982338360">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1876" height="251" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721982338360" />
<state width="962" height="173" key="GridCell.Tab.2.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721970095677" />
<state x="2325" y="219" key="IDE.errors.dialog" timestamp="1717721579924">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -414,15 +443,15 @@
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="2180" y="178" key="com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory$2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718164878415" />
<state x="244" y="0" width="1126" height="291" maximized="true" key="dock-window-1" timestamp="1718241968642">
<state x="112" y="-23" width="1456" height="849" maximized="true" key="dock-window-1" timestamp="1721978544379">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="561" y="-23" width="1285" height="830" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1717557768103" />
<state x="112" y="-23" width="1456" height="849" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721978544379" />
<state x="244" y="0" width="1126" height="291" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1718241968642" />
<state x="1920" y="0" width="1456" height="812" maximized="true" key="dock-window-2" timestamp="1718256956537">
<state x="1920" y="0" width="1251" height="900" key="dock-window-2" timestamp="1721978456737">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="1920" y="0" width="1456" height="812" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1718256956537" />
<state x="1920" y="0" width="1251" height="900" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721978456737" />
<state x="2385" y="62" width="1381" height="803" maximized="true" key="dock-window-2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1716429299628" />
<state x="1920" y="0" width="1456" height="812" key="dock-window-3" timestamp="1718260153943">
<screen x="1920" y="0" width="1440" height="900" />
@ -440,11 +469,11 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="690" y="292" key="extract.method.dialog/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1714106219856" />
<state x="606" y="189" width="999" height="584" key="find.popup" timestamp="1721807037325">
<screen x="0" y="0" width="1920" height="1040" />
<state x="2093" y="316" width="999" height="584" key="find.popup" timestamp="1721953276928">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="606" y="189" width="999" height="584" key="find.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721807037325" />
<state x="2093" y="316" width="999" height="584" key="find.popup/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721803579072" />
<state x="606" y="189" width="999" height="584" key="find.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1721898864239" />
<state x="2093" y="316" width="999" height="584" key="find.popup/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1721953276928" />
<state x="2010" y="109" key="new project wizard" timestamp="1713667469117">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -458,7 +487,17 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="616" y="162" width="672" height="160" key="search.everywhere.popup/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1714962133734" />
<state x="2382" y="140" width="672" height="585" key="search.everywhere.popup/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1713253169725" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="javascript">
<url>file://$PROJECT_DIR$/ruoyi-ui/src/views/bid/bid/index.vue</url>
<line>334</line>
<option name="timeStamp" value="2" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/ruoyi$SHA1.ic" NAME="SHA1 Coverage Results" MODIFIED="1718777464789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">

View File

@ -1,5 +1,5 @@
#for tests only !
#Wed Jul 24 14:31:44 CST 2024
#Fri Jul 26 15:59:24 CST 2024
jco.destination.pool_capacity=10
jco.client.lang=ZH
jco.client.ashost=172.19.0.125
@ -7,5 +7,5 @@ jco.client.saprouter=
jco.client.user=RFC
jco.client.sysnr=00
jco.destination.peak_limit=10
jco.client.passwd=u/Mp~k!?{);`pi!g;HElxsF9pcG@L;pQe(qqQJKCwOg@`uHx
jco.client.passwd=w-HV6Kx+x}mx.m$]3oNY)OS%9W9{p#qs{,9T}Kk)QS]%)O]F
jco.client.client=800

View File

@ -74,7 +74,7 @@ public class BidController extends BaseController
/**
* 分派
*/
@PreAuthorize("@ss.hasPermi('bid:bid:assign')")
/*@PreAuthorize("@ss.hasPermi('bid:bid:assign')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
@ -95,7 +95,7 @@ public class BidController extends BaseController
bidService.updateBid(entity);
}
return success();
}
}*/
/**
* 查询投标信息列表
@ -105,14 +105,13 @@ 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);
}
@ -120,10 +119,10 @@ public class BidController extends BaseController
/**
* 修改保存投标信息列表单元格数据
*/
@PreAuthorize("@ss.hasPermi('bid:bid:updateListBid')")
@PreAuthorize("@ss.hasAnyPermi('bid:bid:updateListBid,bid:bid:updateListBid2')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
tableId = "bidId",codeName = "bidCode",title = "修改保存列表数据")
@PostMapping("/updateListBid")
public AjaxResult updateListBid(@RequestBody Bid bid)
{
@ -153,10 +152,28 @@ public class BidController extends BaseController
return success(bidService.selectBidByBidId(bidId));
}
/**
* 新增投标信息
*/
@PreAuthorize("@ss.hasPermi('bid:bid:confirm')")
@Log(title = "投标经理确认", businessType = BusinessType.UPDATE)
@PostMapping("/confirmBid")
public AjaxResult confirmBid(@RequestBody Bid bid)
{
String bidNumber = bidService.getCodeTB("T");
bid.setBidNumber(bidNumber);
bid.setBidConfirmStatus("0");//更新确认状态 已确认
return success(bidService.updateBid(bid));
}
/**
* 新增投标信息
*/
@PreAuthorize("@ss.hasPermi('bid:bid:add')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode",title = "投标信息新增")
@Log(title = "投标信息新增", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Bid bid)
@ -188,7 +205,7 @@ public class BidController extends BaseController
@PreAuthorize("@ss.hasPermi('bid:bid:edit')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
tableId = "bidId",codeName = "bidCode",title = "投标信息修改")
@Log(title = "投标信息修改", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Bid bid)
@ -285,7 +302,7 @@ public class BidController extends BaseController
@PreAuthorize("@ss.hasPermi('bid:bid:commit')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
tableId = "bidId",codeName = "bidCode",title = "业务员提交投标")
@Log(title = "投标信息提交投标办", businessType = BusinessType.OTHER)
@PostMapping("/commitTbxx")
public AjaxResult commitTbxx(@RequestBody Bid bid)
@ -416,7 +433,7 @@ public class BidController extends BaseController
@PreAuthorize("@ss.hasPermi('bid:bid:assist')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
tableId = "bidId",codeName = "bidCode",title = "投标提交技术协助")
@Log(title = "投标提交技术协助", businessType = BusinessType.OTHER)
@PostMapping("/commitJsBid")
public AjaxResult commitJsBid(@RequestBody Bid bid)
@ -481,6 +498,9 @@ public class BidController extends BaseController
* 报价单提交核价协助
*/
@PreAuthorize("@ss.hasPermi('bid:bid:assistHj')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode",title = "投标提交核价协助")
@Log(title = "投标提交核价协助", businessType = BusinessType.OTHER)
@PostMapping("/commitHjBid")
public AjaxResult commitHjBid(@RequestBody Bid bid)
@ -514,7 +534,7 @@ public class BidController extends BaseController
@PreAuthorize("@ss.hasPermi('bid:bid:reject')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.bid.service.impl.BidServiceImpl",
serviceImplMethod="selectBidByBidId",
tableId = "bidId",codeName = "bidCode")
tableId = "bidId",codeName = "bidCode",title = "投标驳回")
@Log(title = "投标驳回", businessType = BusinessType.OTHER)
@PostMapping("/rejectBid")
public AjaxResult rejectBid(@RequestBody Bid bid)

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jul 25 08:19:43 CST 2024
#Fri Jul 26 16:42:15 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 Jul 25 08:19:32 CST 2024
#Fri Jul 26 16:42:03 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-common

View File

@ -9,6 +9,7 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysChangeRecord;
import com.ruoyi.system.mapper.SysChangeRecordMapper;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
@ -89,19 +90,26 @@ public class ChangeRecordAspect {
e.printStackTrace();
log.error("service加载失败:", e);
}
if ("add".equals(operateLog.type())) {
/* if ("add".equals(operateLog.type())) {
Map<String, Object> dataMap = (Map<String, Object>) objectToMap(object);
log.info("新增的数据:{}" + dataMap.toString());
}
}*/
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
if (operateLog.needDefaultCompare()) {
//比较新数据与数据库原数据
List<Map<String, Object>> list = defaultDealUpdate(object, oldMap, operateLog.tableId(),operateLog.codeName());
String id = (String) oldMap.get(operateLog.tableId());
if(StringUtils.isEmpty(id)){
list = defaultDealAdd(object, operateLog.tableId(),operateLog.codeName());
}else{
list = defaultDealUpdate(object, oldMap, operateLog.tableId(),operateLog.codeName());
}
for (Map<String, Object> dataMap : list) {
changeRecord.setChangeField(String.valueOf(dataMap.get("filedName")));
changeRecord.setBeforeChange(String.valueOf(dataMap.get("oldValue")));
changeRecord.setAfterChange(String.valueOf(dataMap.get("newValue")));
changeRecord.setTypeId(String.valueOf(dataMap.get(operateLog.tableId())));
changeRecord.setCodeName(String.valueOf(dataMap.get(operateLog.codeName())));
changeRecord.setTitle(operateLog.title());
changeRecordMapper.insertChangeRecord(changeRecord);
}
}
@ -112,6 +120,47 @@ public class ChangeRecordAspect {
}
private List<Map<String, Object>> defaultDealAdd(Object newObject, String tableId, String codeName) {
try {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> newMap = (Map<String, Object>) objectToMap(newObject);
Object finalNewObject = newObject;
newMap.forEach((k, v) -> {
Object newResult = newMap.get(k);
v = v==null?"":v;
newResult = newResult==null?"":newResult;
if(!StringUtil.isEmpty(String.valueOf(newResult))){
Field field = ReflectionUtils.getAccessibleField(finalNewObject, k);
DataName dataName = field.getAnnotation(DataName.class);
if (null != dataName && StringUtils.isNotEmpty(dataName.name())) {
//翻译表达式 0=,1=
String readConverterExp = dataName.readConverterExp();
Map result = new HashMap();
result.put("filedName", dataName.name());
result.put(tableId, newMap.get(tableId));
result.put(codeName, newMap.get(codeName));
if (StringUtils.isNotEmpty(dataName.readConverterExp())) {
String newValue = convertByExp(
String.valueOf(newResult), dataName.readConverterExp(), ",");
result.put("oldValue", "");
result.put("newValue", newValue);
} else {
result.put("oldValue", "");
result.put("newValue", newResult);
}
list.add(result);
}
}
});
log.info("比较的数据哈:{}" + list.toString());
return list;
} catch (Exception e) {
log.error("比较异常", e);
e.printStackTrace();
throw new RuntimeException("比较异常", e);
}
}
private List<Map<String, Object>> defaultDealUpdate(Object newObject, Map<String, Object> oldMap, String tableId, String codeName) {
try {
List<Map<String, Object>> list = new ArrayList<>();
@ -119,7 +168,9 @@ public class ChangeRecordAspect {
Object finalNewObject = newObject;
oldMap.forEach((k, v) -> {
Object newResult = newMap.get(k);
if (null != v && !v.equals(newResult)) {
v = v==null?"":v;
newResult = newResult==null?"":newResult;
if (!v.equals(newResult)) {
Field field = ReflectionUtils.getAccessibleField(finalNewObject, k);
DataName dataName = field.getAnnotation(DataName.class);
if (null != dataName && StringUtils.isNotEmpty(dataName.name())) {

View File

@ -31,4 +31,7 @@ public @interface ChangeRecordLog {
//操作类型
String type() default "update";
//操作事件
String title() default "";
}

View File

@ -17,7 +17,10 @@ public class DefaultContentParse implements ContentParser {
public Object getResult(JoinPoint joinPoint, ChangeRecordLog operateLog, String tableId) throws Exception {
Object info = joinPoint.getArgs()[0];
Object id = ReflectionUtils.getFieldValue(info, tableId);
Assert.notNull(id, "id不能为空");
if(id==null){
return info;
}
String serviceImplName = operateLog.serviceImplclass();
String serviceImplMethod = operateLog.serviceImplMethod();

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jul 25 08:19:37 CST 2024
#Fri Jul 26 16:42:09 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-framework

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jul 25 08:19:38 CST 2024
#Fri Jul 26 16:42:11 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-generator

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jul 25 08:19:38 CST 2024
#Fri Jul 26 16:42:10 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-quartz

View File

@ -6,6 +6,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.lang.reflect.Field;
import java.util.Date;
/**
@ -16,15 +17,18 @@ import java.util.Date;
*/
public class Bid extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** */
private String bidId;
private String[] bidIds;
/** 投标单号 */
@Excel(name = "投标单号")
private String bidCode;
/** 标书编号 */
@Excel(name = "标书编号")
private String bidCode;
@DataName(name = "标书编号")
private String bidNumber;
/** 业务员账号 */
private String bidSalesmanCode;
@ -34,7 +38,6 @@ public class Bid extends BaseEntity
/** 业务员 */
@Excel(name = "业务员")
@DataName(name = "业务员")
private String bidSalesmanName;
/** 部门ID */
@ -44,7 +47,7 @@ public class Bid extends BaseEntity
private String bidSalesmanDeptName;
/** 是否报名 */
@DataName(name = "是否报名")
@DataName(name = "是否报名",readConverterExp="0=是,1=否")
private String bidHasRegistration;
/** 原报名编号 */
@ -57,9 +60,9 @@ public class Bid extends BaseEntity
@DataName(name = "开标日期")
private String bidOpeningDate;
/** 是否网上报价0-是/1-否) */
@Excel(name = "是否网上报价",dictType = "bid_online_quotation")
@DataName(name = "是否网上报价",readConverterExp="0=是,1=否")
/** 网上报价0-是/1-否) */
@Excel(name = "网上报价",dictType = "bid_online_quotation")
@DataName(name = "网上报价",readConverterExp="0=是,1=否")
private String bidOnlineQuotation;
/** 报价平台网址 */
@ -220,6 +223,10 @@ public class Bid extends BaseEntity
@DataName(name = "审核人")
private String bidShr;
/** 投标经理确认 */
@DataName(name = "投标经理确认",readConverterExp="0=已确认,1=未确认")
private String bidConfirmStatus;
/** 提交状态 */
@Excel(name = "提交状态",dictType = "bid_approval_status")
@DataName(name = "提交状态",readConverterExp="0=待提交,1=协助中,2=已完成,3=已驳回,4=审批中")
@ -312,6 +319,9 @@ public class Bid extends BaseEntity
{
return bidCode;
}
public String getBidNumber() { return bidNumber; }
public void setBidNumber(String bidNumber) { this.bidNumber = bidNumber; }
public String getBidSalesmanCode() { return bidSalesmanCode; }
public void setBidSalesmanCode(String bidSalesmanCode) { this.bidSalesmanCode = bidSalesmanCode; }
@ -642,6 +652,9 @@ public class Bid extends BaseEntity
{
return bidShr;
}
public String getBidConfirmStatus() { return bidConfirmStatus; }
public void setBidConfirmStatus(String bidConfirmStatus) { this.bidConfirmStatus = bidConfirmStatus; }
public void setBidApprovalStatus(String bidApprovalStatus)
{
this.bidApprovalStatus = bidApprovalStatus;
@ -743,4 +756,5 @@ public class Bid extends BaseEntity
public String getBidHjRemark() { return bidHjRemark; }
public void setBidHjRemark(String bidHjRemark) { this.bidHjRemark = bidHjRemark; }
}

View File

@ -77,12 +77,19 @@ public interface BidMapper
public int deleteBidByBidIds(String[] bidIds);
/**
* 获取单据编号
* 获取系统单据编号
* @param type
* @return
*/
String getCode(String type);
/**
* 获取业务单据编号
* @param type
* @return
*/
String getCodeTB(String type);
/**
* 查询OA用户
* @return

View File

@ -86,12 +86,19 @@ public interface IBidService
public int deleteBidByBidId(String bidId);
/**
* 获取单据编号
* 获取系统单据编号
* @param type
* @return
*/
String getCode(String type);
/**
* 获取业务单据编号
* @param type
* @return
*/
String getCodeTB(String type);
/**
* 查询OA用户
* @return

View File

@ -131,7 +131,7 @@ public class BidServiceImpl implements IBidService
}
/**
* 获取单据编号
* 获取系统单据编号
* @param type
* @return
*/
@ -140,6 +140,16 @@ public class BidServiceImpl implements IBidService
return bidMapper.getCode(type);
}
/**
* 获取业务单据编号
* @param type
* @return
*/
@Override
public String getCodeTB(String type) {
return bidMapper.getCodeTB(type);
}
/**
* 查询OA用户
* @return

View File

@ -8,6 +8,7 @@ public class SysChangeRecord {
private String afterChange;
private String typeId;
private String codeName;
private String title;
public String getChangeTime() {
return changeTime;
@ -60,4 +61,8 @@ public class SysChangeRecord {
public String getCodeName() { return codeName; }
public void setCodeName(String codeName) { this.codeName = codeName; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
}

View File

@ -7,6 +7,7 @@
<resultMap type="Bid" id="BidResult">
<result property="bidId" column="bid_id" />
<result property="bidCode" column="bid_code" />
<result property="bidNumber" column="bid_number" />
<result property="bidSalesmanCode" column="bid_salesman_code" />
<result property="bidSalesmanBm" column="bid_salesman_bm" />
<result property="bidSalesmanName" column="bid_salesman_name" />
@ -54,6 +55,7 @@
<result property="bidZbr" column="bid_zbr" />
<result property="bidJdr" column="bid_jdr" />
<result property="bidShr" column="bid_shr" />
<result property="bidConfirmStatus" column="bid_confirm_status" />
<result property="bidApprovalStatus" column="bid_approval_status" />
<result property="bidNotificationAward" column="bid_notification_award" />
<result property="bidRemark" column="bid_remark" />
@ -99,7 +101,7 @@
</sql>
<sql id="selectBidVo">
select a.bid_id, a.bid_code,a.bid_salesman_code, a.bid_salesman_bm, a.bid_salesman_name,
select a.bid_id, a.bid_code,a.bid_number,a.bid_salesman_code, a.bid_salesman_bm, a.bid_salesman_name,
a.bid_salesman_dept_id, a.bid_salesman_dept_name,a.bid_has_registration,a.bid_registration_number, a.bid_opening_date,
a.bid_online_quotation, a.bid_website, a.bid_tendering_unit_bm,a.bid_tendering_unit, a.bid_agency,
a.bid_project, a.bid_authorized_representative, a.bid_authorized_phone,
@ -111,7 +113,7 @@
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_approval_status, a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, 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.update_by, a.update_time,
@ -135,14 +137,18 @@
<include refid="selectBidVo"/>
<where>
<if test="bidCode != null and bidCode != ''"> and bid_code like concat('%', #{bidCode}, '%')</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''"> and u.nick_name like concat('%', #{bidSalesmanName}, '%')</if>
<if test="bidAuthorizedRepresentative != null and bidAuthorizedRepresentative != ''"> and bid_authorized_representative like concat('%', #{bidAuthorizedRepresentative}, '%')</if>
<if test="params.beginBidOpeningDate != null and params.beginBidOpeningDate != '' and params.endBidOpeningDate != null and params.endBidOpeningDate != ''"> and bid_opening_date between #{params.beginBidOpeningDate} and #{params.endBidOpeningDate}</if>
<if test="bidTenderingUnit != null and bidTenderingUnit != ''"> and bid_tendering_unit like concat('%', #{bidTenderingUnit}, '%')</if>
<if test="bidAgency != null and bidAgency != ''"> and bid_agency like concat('%', #{bidAgency}, '%')</if>
<if test="bidProject != null and bidProject != ''"> and bid_project like concat('%', #{bidProject}, '%')</if>
<if test="bidAuthorizedRepresentative != null and bidAuthorizedRepresentative != ''"> and bid_authorized_representative like concat('%', #{bidAuthorizedRepresentative}, '%')</if>
<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="setReceiveUser != null and setReceiveUser != ''"> and set_receive_user = #{setReceiveUser}</if>
<if test="receiveUserName != null and receiveUserName != ''"> and receive_user_name = #{receiveUserName}</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>
@ -159,6 +165,7 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bidId != null">bid_id,</if>
<if test="bidCode != null and bidCode != ''">bid_code,</if>
<if test="bidNumber != null and bidNumber != ''">bid_number,</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">bid_salesman_code,</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">bid_salesman_bm,</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">bid_salesman_name,</if>
@ -206,6 +213,7 @@
<if test="bidZbr != null and bidZbr != ''">bid_zbr,</if>
<if test="bidJdr != null and bidJdr != ''">bid_jdr,</if>
<if test="bidShr != null and bidShr != ''">bid_shr,</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">bid_confirm_status,</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''">bid_approval_status,</if>
<if test="bidNotificationAward != null and bidNotificationAward != ''">bid_notification_award,</if>
<if test="bidRemark != null and bidRemark != ''">bid_remark,</if>
@ -213,7 +221,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user,</if>
<if test="receiveUserName != null and receiveUserName != ''">receive_user_name,</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name,</if>
<if test="bidStatus != null and bidStatus != ''">bid_status,</if>
<if test="bidStatus != null">bid_status,</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status,</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement,</if>
@ -231,6 +239,7 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="bidId != null">#{bidId},</if>
<if test="bidCode != null and bidCode != ''">#{bidCode},</if>
<if test="bidNumber != null and bidNumber != ''">#{bidNumber},</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">#{bidSalesmanCode},</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">#{bidSalesmanBm},</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">#{bidSalesmanName},</if>
@ -278,6 +287,7 @@
<if test="bidZbr != null and bidZbr != ''">#{bidZbr},</if>
<if test="bidJdr != null and bidJdr != ''">#{bidJdr},</if>
<if test="bidShr != null and bidShr != ''">#{bidShr},</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">#{bidConfirmStatus},</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''">#{bidApprovalStatus},</if>
<if test="bidNotificationAward != null and bidNotificationAward != ''">#{bidNotificationAward},</if>
<if test="bidRemark != null and bidRemark != ''">#{bidRemark},</if>
@ -285,7 +295,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">#{setReceiveUser},</if>
<if test="receiveUserName != null and receiveUserName != ''">#{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">#{receiveUserNickName},</if>
<if test="bidStatus != null and bidStatus != ''">#{bidStatus},</if>
<if test="bidStatus != null">#{bidStatus},</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">#{bidJsxzApprovalStatus},</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">#{bidJsxzTechnicalRequirement},</if>
@ -364,6 +374,7 @@
update bid
<trim prefix="SET" suffixOverrides=",">
<if test="bidCode != null and bidCode != ''">bid_code = #{bidCode},</if>
<if test="bidNumber != null and bidNumber != ''">bid_number = #{bidNumber},</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">bid_salesman_code = #{bidSalesmanCode},</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">bid_salesman_bm = #{bidSalesmanBm},</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">bid_salesman_name = #{bidSalesmanName},</if>
@ -411,6 +422,7 @@
<if test="bidZbr != null">bid_zbr = #{bidZbr},</if>
<if test="bidJdr != null">bid_jdr = #{bidJdr},</if>
<if test="bidShr != null">bid_shr = #{bidShr},</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">bid_confirm_status = #{bidConfirmStatus},</if>
<if test="bidApprovalStatus != null">bid_approval_status = #{bidApprovalStatus},</if>
<if test="bidNotificationAward != null">bid_notification_award = #{bidNotificationAward},</if>
<if test="bidRemark != null">bid_remark = #{bidRemark},</if>
@ -418,7 +430,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user = #{setReceiveUser},</if>
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name = #{receiveUserNickName},</if>
<if test="bidStatus != null and bidStatus != ''">bid_status = #{bidStatus},</if>
<if test="bidStatus != null">bid_status = #{bidStatus},</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status = #{bidJsxzApprovalStatus},</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement = #{bidJsxzTechnicalRequirement},</if>
@ -450,6 +462,9 @@
<select id="getCode" resultType="String" statementType="CALLABLE">
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="getCodeTB" resultType="String" statementType="CALLABLE">
{call GetSerialNo_TB(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaBid">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}

View File

@ -13,6 +13,7 @@
<if test="afterChange != null and afterChange != ''">afterChange,</if>
<if test="typeId != null and typeId != ''">typeId,</if>
<if test="codeName != null and codeName != ''">codeName,</if>
<if test="title != null and title != ''">title,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="changeTime != null">#{changeTime},</if>
@ -22,12 +23,13 @@
<if test="afterChange != null and afterChange != ''">#{afterChange},</if>
<if test="typeId != null and typeId != ''">#{typeId},</if>
<if test="codeName != null and codeName != ''">#{codeName},</if>
<if test="title != null and title != ''">#{title},</if>
</trim>
</insert>
<select id="recordsList" resultType="SysChangeRecord" parameterType="SysChangeRecord">
select a.changeTime,b.nick_name createName,a.changeField,
a.beforeChange,a.afterChange,a.typeId,a.codeName
a.beforeChange,a.afterChange,a.typeId,a.codeName,a.title
from sys_change_record a
left join sys_user b on a.createName = b.user_name
where a.typeId = #{typeId}

View File

@ -54,13 +54,14 @@
<include refid="selectZgysVo"/>
<where>
<if test="pqCode != null and pqCode != ''"> and pq_code like concat('%', #{pqCode}, '%')</if>
<if test="pqSalesmanName != null and pqSalesmanName != ''"> and pq_salesman_name like concat('%', #{pqSalesmanName}, '%')</if>
<if test="pqIllustrate != null and pqIllustrate != ''"> and pq_illustrate = #{pqIllustrate}</if>
<if test="pqSalesmanName != null and pqSalesmanName != ''"> and u.nick_name like concat('%', #{pqSalesmanName}, '%')</if>
<if test="pqAuthorizedRepresentative != null and pqAuthorizedRepresentative != ''"> and pq_authorized_representative like concat('%', #{pqAuthorizedRepresentative}, '%')</if>
<if test="pqCustomerName != null and pqCustomerName != ''"> and pq_customer_name like concat('%', #{pqCustomerName}, '%')</if>
<if test="pqProject != null and pqProject != ''"> and pq_project like concat('%', #{pqProject}, '%')</if>
<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="pqArchiving != null and pqArchiving != ''"> and pq_archiving = #{pqArchiving}</if>
<if test="pqEmpower != null and pqEmpower != ''"> and pq_empower = #{pqEmpower}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>

View File

@ -7,6 +7,7 @@
<resultMap type="Bid" id="BidResult">
<result property="bidId" column="bid_id" />
<result property="bidCode" column="bid_code" />
<result property="bidNumber" column="bid_number" />
<result property="bidSalesmanCode" column="bid_salesman_code" />
<result property="bidSalesmanBm" column="bid_salesman_bm" />
<result property="bidSalesmanName" column="bid_salesman_name" />
@ -54,6 +55,7 @@
<result property="bidZbr" column="bid_zbr" />
<result property="bidJdr" column="bid_jdr" />
<result property="bidShr" column="bid_shr" />
<result property="bidConfirmStatus" column="bid_confirm_status" />
<result property="bidApprovalStatus" column="bid_approval_status" />
<result property="bidNotificationAward" column="bid_notification_award" />
<result property="bidRemark" column="bid_remark" />
@ -99,7 +101,7 @@
</sql>
<sql id="selectBidVo">
select a.bid_id, a.bid_code,a.bid_salesman_code, a.bid_salesman_bm, a.bid_salesman_name,
select a.bid_id, a.bid_code,a.bid_number,a.bid_salesman_code, a.bid_salesman_bm, a.bid_salesman_name,
a.bid_salesman_dept_id, a.bid_salesman_dept_name,a.bid_has_registration,a.bid_registration_number, a.bid_opening_date,
a.bid_online_quotation, a.bid_website, a.bid_tendering_unit_bm,a.bid_tendering_unit, a.bid_agency,
a.bid_project, a.bid_authorized_representative, a.bid_authorized_phone,
@ -111,7 +113,7 @@
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_approval_status, a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
a.bid_shr, a.bid_confirm_status, a.bid_approval_status, 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.update_by, a.update_time,
@ -135,14 +137,18 @@
<include refid="selectBidVo"/>
<where>
<if test="bidCode != null and bidCode != ''"> and bid_code like concat('%', #{bidCode}, '%')</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''"> and u.nick_name like concat('%', #{bidSalesmanName}, '%')</if>
<if test="bidAuthorizedRepresentative != null and bidAuthorizedRepresentative != ''"> and bid_authorized_representative like concat('%', #{bidAuthorizedRepresentative}, '%')</if>
<if test="params.beginBidOpeningDate != null and params.beginBidOpeningDate != '' and params.endBidOpeningDate != null and params.endBidOpeningDate != ''"> and bid_opening_date between #{params.beginBidOpeningDate} and #{params.endBidOpeningDate}</if>
<if test="bidTenderingUnit != null and bidTenderingUnit != ''"> and bid_tendering_unit like concat('%', #{bidTenderingUnit}, '%')</if>
<if test="bidAgency != null and bidAgency != ''"> and bid_agency like concat('%', #{bidAgency}, '%')</if>
<if test="bidProject != null and bidProject != ''"> and bid_project like concat('%', #{bidProject}, '%')</if>
<if test="bidAuthorizedRepresentative != null and bidAuthorizedRepresentative != ''"> and bid_authorized_representative like concat('%', #{bidAuthorizedRepresentative}, '%')</if>
<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="setReceiveUser != null and setReceiveUser != ''"> and set_receive_user = #{setReceiveUser}</if>
<if test="receiveUserName != null and receiveUserName != ''"> and receive_user_name = #{receiveUserName}</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>
@ -159,6 +165,7 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bidId != null">bid_id,</if>
<if test="bidCode != null and bidCode != ''">bid_code,</if>
<if test="bidNumber != null and bidNumber != ''">bid_number,</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">bid_salesman_code,</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">bid_salesman_bm,</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">bid_salesman_name,</if>
@ -206,6 +213,7 @@
<if test="bidZbr != null and bidZbr != ''">bid_zbr,</if>
<if test="bidJdr != null and bidJdr != ''">bid_jdr,</if>
<if test="bidShr != null and bidShr != ''">bid_shr,</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">bid_confirm_status,</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''">bid_approval_status,</if>
<if test="bidNotificationAward != null and bidNotificationAward != ''">bid_notification_award,</if>
<if test="bidRemark != null and bidRemark != ''">bid_remark,</if>
@ -213,7 +221,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user,</if>
<if test="receiveUserName != null and receiveUserName != ''">receive_user_name,</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name,</if>
<if test="bidStatus != null and bidStatus != ''">bid_status,</if>
<if test="bidStatus != null">bid_status,</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status,</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement,</if>
@ -231,6 +239,7 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="bidId != null">#{bidId},</if>
<if test="bidCode != null and bidCode != ''">#{bidCode},</if>
<if test="bidNumber != null and bidNumber != ''">#{bidNumber},</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">#{bidSalesmanCode},</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">#{bidSalesmanBm},</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">#{bidSalesmanName},</if>
@ -278,6 +287,7 @@
<if test="bidZbr != null and bidZbr != ''">#{bidZbr},</if>
<if test="bidJdr != null and bidJdr != ''">#{bidJdr},</if>
<if test="bidShr != null and bidShr != ''">#{bidShr},</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">#{bidConfirmStatus},</if>
<if test="bidApprovalStatus != null and bidApprovalStatus != ''">#{bidApprovalStatus},</if>
<if test="bidNotificationAward != null and bidNotificationAward != ''">#{bidNotificationAward},</if>
<if test="bidRemark != null and bidRemark != ''">#{bidRemark},</if>
@ -285,7 +295,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">#{setReceiveUser},</if>
<if test="receiveUserName != null and receiveUserName != ''">#{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">#{receiveUserNickName},</if>
<if test="bidStatus != null and bidStatus != ''">#{bidStatus},</if>
<if test="bidStatus != null">#{bidStatus},</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">#{bidJsxzApprovalStatus},</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">#{bidJsxzTechnicalRequirement},</if>
@ -364,6 +374,7 @@
update bid
<trim prefix="SET" suffixOverrides=",">
<if test="bidCode != null and bidCode != ''">bid_code = #{bidCode},</if>
<if test="bidNumber != null and bidNumber != ''">bid_number = #{bidNumber},</if>
<if test="bidSalesmanCode != null and bidSalesmanCode != ''">bid_salesman_code = #{bidSalesmanCode},</if>
<if test="bidSalesmanBm != null and bidSalesmanBm != ''">bid_salesman_bm = #{bidSalesmanBm},</if>
<if test="bidSalesmanName != null and bidSalesmanName != ''">bid_salesman_name = #{bidSalesmanName},</if>
@ -411,6 +422,7 @@
<if test="bidZbr != null">bid_zbr = #{bidZbr},</if>
<if test="bidJdr != null">bid_jdr = #{bidJdr},</if>
<if test="bidShr != null">bid_shr = #{bidShr},</if>
<if test="bidConfirmStatus != null and bidConfirmStatus != ''">bid_confirm_status = #{bidConfirmStatus},</if>
<if test="bidApprovalStatus != null">bid_approval_status = #{bidApprovalStatus},</if>
<if test="bidNotificationAward != null">bid_notification_award = #{bidNotificationAward},</if>
<if test="bidRemark != null">bid_remark = #{bidRemark},</if>
@ -418,7 +430,7 @@
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user = #{setReceiveUser},</if>
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name = #{receiveUserNickName},</if>
<if test="bidStatus != null and bidStatus != ''">bid_status = #{bidStatus},</if>
<if test="bidStatus != null">bid_status = #{bidStatus},</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status = #{bidJsxzApprovalStatus},</if>
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement = #{bidJsxzTechnicalRequirement},</if>
@ -450,6 +462,9 @@
<select id="getCode" resultType="String" statementType="CALLABLE">
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="getCodeTB" resultType="String" statementType="CALLABLE">
{call GetSerialNo_TB(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
<select id="selectOAUserByUserName" resultType="SysOaBid">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}

View File

@ -13,6 +13,7 @@
<if test="afterChange != null and afterChange != ''">afterChange,</if>
<if test="typeId != null and typeId != ''">typeId,</if>
<if test="codeName != null and codeName != ''">codeName,</if>
<if test="title != null and title != ''">title,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="changeTime != null">#{changeTime},</if>
@ -22,12 +23,13 @@
<if test="afterChange != null and afterChange != ''">#{afterChange},</if>
<if test="typeId != null and typeId != ''">#{typeId},</if>
<if test="codeName != null and codeName != ''">#{codeName},</if>
<if test="title != null and title != ''">#{title},</if>
</trim>
</insert>
<select id="recordsList" resultType="SysChangeRecord" parameterType="SysChangeRecord">
select a.changeTime,b.nick_name createName,a.changeField,
a.beforeChange,a.afterChange,a.typeId,a.codeName
a.beforeChange,a.afterChange,a.typeId,a.codeName,a.title
from sys_change_record a
left join sys_user b on a.createName = b.user_name
where a.typeId = #{typeId}

View File

@ -54,13 +54,14 @@
<include refid="selectZgysVo"/>
<where>
<if test="pqCode != null and pqCode != ''"> and pq_code like concat('%', #{pqCode}, '%')</if>
<if test="pqSalesmanName != null and pqSalesmanName != ''"> and pq_salesman_name like concat('%', #{pqSalesmanName}, '%')</if>
<if test="pqIllustrate != null and pqIllustrate != ''"> and pq_illustrate = #{pqIllustrate}</if>
<if test="pqSalesmanName != null and pqSalesmanName != ''"> and u.nick_name like concat('%', #{pqSalesmanName}, '%')</if>
<if test="pqAuthorizedRepresentative != null and pqAuthorizedRepresentative != ''"> and pq_authorized_representative like concat('%', #{pqAuthorizedRepresentative}, '%')</if>
<if test="pqCustomerName != null and pqCustomerName != ''"> and pq_customer_name like concat('%', #{pqCustomerName}, '%')</if>
<if test="pqProject != null and pqProject != ''"> and pq_project like concat('%', #{pqProject}, '%')</if>
<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="pqArchiving != null and pqArchiving != ''"> and pq_archiving = #{pqArchiving}</if>
<if test="pqEmpower != null and pqEmpower != ''"> and pq_empower = #{pqEmpower}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Thu Jul 25 08:19:34 CST 2024
#Fri Jul 26 16:42:06 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-system

View File

@ -35,6 +35,15 @@ export function getBid(bidId) {
})
}
// 投标经理确认
export function confirmBid(data) {
return request({
url: '/bid/bid/confirmBid',
method: 'post',
data: data
})
}
// 新增投标信息
export function addBid(data) {
return request({

View File

@ -117,6 +117,25 @@
font-size: 13px;
}
}
.el-table__fixed {
height: auto !important;
bottom: 8px !important;
}
.el-table__fixed::before, .el-table__fixed::before {
display: none;
}
//修改滚动条的宽度和高度横向是高度纵向是宽度
::-webkit-scrollbar {
width: 8px;
height: 8px;
background-color: transparent;
}
//加宽滚动条的错层问题
.el-scrollbar__wrap::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {

View File

@ -127,19 +127,19 @@ Element.Dialog.props.closeOnClickModal.default = false
//聚焦事件
Vue.directive("focus", {
bind:function (el) { // 1.每当指令绑定到元素上的时候会立即执行这个bind函数【执行一次】
el.focus()
},
inserted:function (el) { // 2.当元素插入到DOM中的时候会执行 inserted 函数, 【触发一次】
if(el.tagName.toLocaleLowerCase() == 'input'){
if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
// 如果直接是input标签/textarea标签
el.focus()
}else{
if(el.getElementsByTagName('input')){
el.getElementsByTagName('input')[0].focus()
} else {
// 指令在van-search组件身上, 获取的是组件根标签div, 而input在标签内
const inp = el.querySelector('input')
const textArea = el.querySelector('textarea')
// 如果找到了
if (inp || textArea) {
inp && inp.focus()
textArea && textArea.focus()
}
}
},
updated:function ( ) { // 3.当VNode更新的时候会执行 updated,【可能触发多次】
el.focus()
}
})

View File

@ -8,6 +8,22 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>'
<el-form-item label="业务员" prop="bidSalesmanName" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-input
v-model="queryParams.bidSalesmanName"
placeholder="请输入业务员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="授权代表" prop="bidAuthorizedRepresentative" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-input
v-model="queryParams.bidAuthorizedRepresentative"
placeholder="请输入授权代表"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开标日期">
<el-date-picker
@ -28,6 +44,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="招标代理" prop="bidAgency">
<el-input
v-model="queryParams.bidAgency"
placeholder="请输入招标代理"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目名称" prop="bidProject">
<el-input
v-model="queryParams.bidProject"
@ -36,10 +60,20 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="授权代表" prop="bidAuthorizedRepresentative">
<el-form-item label="投标状态" prop="bidStatus" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-select v-model="queryParams.bidStatus" placeholder="请选择投标状态" clearable>
<el-option
v-for="dict in dict.type.bid_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="制标人" prop="bidZbr" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-input
v-model="queryParams.bidAuthorizedRepresentative"
placeholder="请输入授权代表"
v-model="queryParams.bidZbr"
placeholder="请输入制标人"
clearable
@keyup.enter.native="handleQuery"
/>
@ -54,16 +88,6 @@
/>
</el-select>
</el-form-item>
<el-form-item label="分派情况" prop="bidApprovalStatus">
<el-select v-model="queryParams.setReceiveUser" placeholder="请选择分派情况" clearable>
<el-option
v-for="dict in dict.type.bid_set_receive_user"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -113,7 +137,7 @@
v-hasPermi="['bid:bid:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<!--<el-col :span="1.5">
<el-button
type="warning"
plain
@ -123,7 +147,7 @@
@click="handleAssign"
v-hasPermi="['bid:bid:assign']"
>分派</el-button>
</el-col>
</el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -141,7 +165,7 @@
<el-table height="100%" v-loading="loading" :data="bidList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @cell-dblclick="tabClick">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="投标信息Id" align="center" prop="bidId" v-if="false" />
<el-table-column fixed label="标书编号" align="center" prop="bidCode" width="200px">
<el-table-column fixed label="投标单号" align="center" prop="bidCode" width="200px">
<template slot-scope="scope">
<el-link :underline="false" type="primary" @click="handleUpdate(scope.row)">{{scope.row.bidCode}}</el-link>
</template>
@ -151,66 +175,124 @@
<dict-tag :options="dict.type.bid_approval_status" :value="scope.row.bidApprovalStatus"/>
</template>
</el-table-column>
<!--<el-table-column label="分派情况" align="center" prop="setReceiveUser" width="120px" v-if="checkRole(['BID'])">
<el-table-column label="标书编号" align="center" prop="bidNumber" width="100px" />
<el-table-column label="网上报价" align="center" prop="bidOnlineQuotation" width="150px">
<template slot-scope="scope">
<span v-if="scope.row.setReceiveUser=='0'">已分派</span>
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '网上报价' && checkPermi(['bid:bid:updateListBid'])">
<el-select v-model="scope.row.bidOnlineQuotation" v-focus @change='selectBlur' @blur='changeBlur'>
<el-option
v-for="dict in dict.type.bid_online_quotation"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</span>
<span v-else><dict-tag :options="dict.type.bid_online_quotation" :value="scope.row.bidOnlineQuotation"/></span>
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="receiveUserNickName" width="120px" v-if="checkRole(['BID'])"/>-->
<el-table-column label="原报名编号" align="center" prop="bidRegistrationNumber" width="200px"/>
<el-table-column label="业务员" align="center" prop="bidSalesmanName" width="150px"/>
<el-table-column label="是否网上报价" align="center" prop="bidOnlineQuotation" width="150px">
<el-table-column label="投标状态" align="center" prop="bidStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_online_quotation" :value="scope.row.bidOnlineQuotation"/>
</template>
</el-table-column>
<el-table-column label="开标日期" align="center" prop="bidOpeningDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.bidOpeningDate, '{y}-{m}-{d}') }}</span>
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '投标状态' && checkPermi(['bid:bid:updateListBid2'])">
<el-select v-model="scope.row.bidStatus" v-focus @change='selectBlur' @blur='changeBlur'>
<el-option
v-for="dict in dict.type.bid_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</span>
<span v-else><dict-tag :options="dict.type.bid_status" :value="scope.row.bidStatus"/></span>
</template>
</el-table-column>
<el-table-column label="招标单位" align="center" prop="bidTenderingUnit" width="250px" />
<el-table-column label="招标代理" align="center" prop="bidAgency" width="250px">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '招标代理' && checkPermi(['bid:bid:updateListBid'])">
<el-input type="textarea" autosize ref="focusInput" v-model="scope.row.bidAgency" size="mini" v-focus @blur="inputBlur"/>
</span>
<span v-else>{{ scope.row.bidAgency }}</span>
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" prop="bidProject" width="280px">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '项目名称'">
<el-input ref="focusInput" v-model="scope.row.bidProject" size="mini" v-focus @blur="inputBlur"/>
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '项目名称' && checkPermi(['bid:bid:updateListBid'])">
<el-input type="textarea" autosize ref="focusInput" v-model="scope.row.bidProject" size="mini" v-focus @blur="inputBlur"/>
</span>
<span v-else>{{ scope.row.bidProject }}</span>
</template>
</el-table-column>
<el-table-column label="招标代理" align="center" prop="bidAgency" width="250px" />
<el-table-column label="授权代表" align="center" prop="bidAuthorizedRepresentative" width="100px">
<el-table-column label="开标日期" align="center" prop="bidOpeningDate" width="180">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '授权代表'">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '开标日期' && checkPermi(['bid:bid:updateListBid'])">
<el-date-picker :clearable="false" style="width:85%"
v-model="scope.row.bidOpeningDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择开标日期" v-focus @change='selectDateBlur' @blur='changeBlur'>
</el-date-picker>
</span>
<span v-else>{{ parseTime(scope.row.bidOpeningDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="业务员" align="center" prop="bidSalesmanName" width="150px"/>
<el-table-column label="授权代表" align="center" prop="bidAuthorizedRepresentative" width="120px">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '授权代表' && checkPermi(['bid:bid:updateListBid'])">
<el-input ref="focusInput" v-model="scope.row.bidAuthorizedRepresentative" size="mini" v-focus @blur="inputBlur"/>
</span>
<span v-else>{{ scope.row.bidAuthorizedRepresentative }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center" prop="bidAuthorizedPhone" width="120px">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '联系电话' && checkPermi(['bid:bid:updateListBid'])">
<el-input ref="focusInput" v-model="scope.row.bidAuthorizedPhone" size="mini" v-focus @blur="inputBlur"/>
</span>
<span v-else>{{ scope.row.bidAuthorizedPhone }}</span>
</template>
</el-table-column>
<el-table-column label="制标人" align="center" prop="bidZbr" width="100px">
<template slot-scope="scope">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '制标人'">
<span v-if="scope.row.index === tabClickIndex && tabClickLabel === '制标人' && checkPermi(['bid:bid:updateListBid'])">
<el-input v-model="scope.row.bidZbr" size="mini" v-focus @blur="inputBlur"/>
</span>
<span v-else>{{ scope.row.bidZbr }}</span>
</template>
</el-table-column>
<el-table-column label="技术协助状态" align="center" prop="bidJsxzApprovalStatus" width="150px" v-if="checkRole(['BID'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsxzApprovalStatus" v-if="scope.row.bidJsxzApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="核价协助状态" align="center" prop="bidHjApprovalStatus" width="150px" v-if="checkRole(['BID'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_hj_approval_status" :value="scope.row.bidHjApprovalStatus" v-if="scope.row.bidHjApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="创建人" align="center" prop="createName" width="150px"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="开闭口" align="center" prop="bidOpenClose" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_open_close" :value="scope.row.bidOpenClose"/>
</template>
</el-table-column>
<el-table-column label="调价通知" align="center" prop="bidPriceAdjustmentNotice" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="铜价" align="center" prop="bidTongPrice" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="铝价" align="center" prop="bidLvPrice" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="投标价" align="center" prop="bidPrice" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="报价点数" align="center" prop="bidDs" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="厂价" align="center" prop="bidFactoryPrice" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<el-table-column label="中标金额" align="center" prop="bidWinningAmount" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])"/>
<!--<el-table-column label="分派情况" align="center" prop="setReceiveUser" width="120px" v-if="checkRole(['BID'])">
<template slot-scope="scope">
<span v-if="scope.row.setReceiveUser=='0'">已分派</span>
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="receiveUserNickName" width="120px" v-if="checkRole(['BID'])"/>
<el-table-column label="原报名编号" align="center" prop="bidRegistrationNumber" width="200px"/>-->
<el-table-column label="技术协助状态" align="center" prop="bidJsxzApprovalStatus" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsxzApprovalStatus" v-if="scope.row.bidJsxzApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="核价协助状态" align="center" prop="bidHjApprovalStatus" width="150px" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_hj_approval_status" :value="scope.row.bidHjApprovalStatus" v-if="scope.row.bidHjApprovalStatus!=0"/>
</template>
</el-table-column>
<!--<el-table-column label="校对人" align="center" prop="bidJdr" width="100px" />
<el-table-column label="审核人" align="center" prop="bidShr" width="100px" />-->
</el-table>
@ -257,7 +339,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="是否报名" prop="bidHasRegistration">
<el-select v-model="form.bidHasRegistration" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null">
<el-select v-model="form.bidHasRegistration" :disabled="ywyDis">
<el-option
v-for="dict in dict.type.bid_has_registration"
:key="dict.value"
@ -270,7 +352,7 @@
<el-col :span="10">
<el-form-item label="原报名编号" prop="bidRegistrationNumber">
<el-input v-model="form.bidRegistrationNumber" placeholder="请输入原报名编号" :disabled="true">
<el-button slot="append" icon="el-icon-search" @click="openZgys" v-if="(this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null)&&this.form.bidHasRegistration==0"/>
<el-button slot="append" icon="el-icon-search" @click="openZgys" v-if="!ywyDis && this.form.bidHasRegistration==0"/>
</el-input>
</el-form-item>
</el-col>
@ -297,13 +379,13 @@
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开标日期"
:disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null">
:disabled="ywyDis">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否网上报价" prop="bidOnlineQuotation">
<el-select v-model="form.bidOnlineQuotation" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null">
<el-form-item label="网上报价" prop="bidOnlineQuotation">
<el-select v-model="form.bidOnlineQuotation" :disabled="ywyDis">
<el-option
v-for="dict in dict.type.bid_online_quotation"
:key="dict.value"
@ -316,60 +398,60 @@
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="报价平台网址" prop="bidWebsite">
<el-input v-model="form.bidWebsite" placeholder="请输入报价平台网址" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input v-model="form.bidWebsite" placeholder="请输入报价平台网址" :disabled="ywyDis" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招标单位" prop="bidTenderingUnit">
<el-input v-model="form.bidTenderingUnitBm" v-if="false"/>
<el-input v-model="form.bidTenderingUnit" placeholder="请输入招标单位" :disabled="true">
<el-button slot="append" icon="el-icon-search" @click="openCustomer" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null"></el-button>
<el-button slot="append" icon="el-icon-search" @click="openCustomer" v-if="!ywyDis"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招标代理" prop="bidAgency">
<el-input v-model="form.bidAgency" placeholder="请输入招标代理" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input v-model="form.bidAgency" placeholder="请输入招标代理" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="项目名称" prop="bidProject">
<el-input type="textarea" autosize v-model="form.bidProject" placeholder="请输入项目名称" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input type="textarea" autosize v-model="form.bidProject" placeholder="请输入项目名称" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="授权代表" prop="bidAuthorizedRepresentative">
<el-input v-model="form.bidAuthorizedRepresentative" placeholder="请输入授权代表" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input v-model="form.bidAuthorizedRepresentative" placeholder="请输入授权代表" :disabled="ywyDis" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系方式" prop="bidAuthorizedPhone">
<el-input v-model="form.bidAuthorizedPhone" placeholder="请输入授权人联系方式" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input v-model="form.bidAuthorizedPhone" placeholder="请输入授权人联系方式" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="招标文件付款方式" prop="bidFilePaymentMethod">
<el-input type="textarea" autosize v-model="form.bidFilePaymentMethod" placeholder="请输入招标文件付款方式" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input type="textarea" autosize v-model="form.bidFilePaymentMethod" placeholder="请输入招标文件付款方式" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="投标付款偏差" prop="bidPaymentDeviation">
<el-input type="textarea" autosize v-model="form.bidPaymentDeviation" placeholder="请输入投标付款偏差" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input type="textarea" autosize v-model="form.bidPaymentDeviation" placeholder="请输入投标付款偏差" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="是否铜价联动" prop="bidCopperPriceLinkage">
<el-select v-model="form.bidCopperPriceLinkage" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null">
<el-select v-model="form.bidCopperPriceLinkage" :disabled="ywyDis">
<el-option
v-for="dict in dict.type.bid_copper_price_linkage"
:key="dict.value"
@ -381,14 +463,14 @@
</el-col>
<el-col :span="16">
<el-form-item label="价格联动方式" prop="bidPriceLinkageMethod">
<el-input type="textarea" autosize v-model="form.bidPriceLinkageMethod" placeholder="请输入价格联动方式" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input type="textarea" autosize v-model="form.bidPriceLinkageMethod" placeholder="请输入价格联动方式" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="其他投标要求" prop="bidOtherRequire">
<el-input type="textarea" autosize v-model="form.bidOtherRequire" placeholder="请输入其他投标要求" :disabled="this.form.bidApprovalStatus != '0' && this.form.bidApprovalStatus != null" />
<el-input type="textarea" autosize v-model="form.bidOtherRequire" placeholder="请输入其他投标要求" :disabled="ywyDis" />
</el-form-item>
</el-col>
</el-row>
@ -1012,6 +1094,9 @@
</el-form>
<div slot="footer" class="dialog-footer">
<div style="height: 25px;">
<!-- 投标经理确认-->
<span style="float:left" v-hasPermi="['bid:bid:confirm']"><el-button type="warning" plain @click="confirmBid" v-if="this.form.bidApprovalStatus == '1'&&this.form.bidConfirmStatus == '0'">确认投标</el-button></span>
<!-- 业务员提交保存-->
<span v-hasPermi="['bid:bid:save']"><el-button @click="saveForm" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null"> </el-button></span>
<span style="margin-left: 10px" v-hasPermi="['bid:bid:commit']"><el-button type="primary" plain @click="commitForm" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null"> </el-button></span>
@ -1074,7 +1159,7 @@
import { checkPermi,checkRole } from '@/utils/permission';//
import { getToken } from "@/utils/auth";
import { listZgys} from "@/api/zgys/zgys";
import { versionList,getTongLvPrice,bidAssign,updateListBid, listBid, getBid, delBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx,commitJsBid, commitHjBid, rejectBid } from "@/api/bid/bid";
import { versionList,getTongLvPrice,bidAssign,updateListBid, listBid, getBid, delBid, confirmBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx,commitJsBid, commitHjBid, rejectBid } from "@/api/bid/bid";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入技术确认单详情组件*/
@ -1240,6 +1325,9 @@ export default {
tabClickLabel: '', //
tabClickProperty: '', //
tabClickValue: '', //
//
ywyDis: false
};
},
created() {
@ -1440,6 +1528,11 @@ export default {
}
}
const bidApprovalStatus = this.form.bidApprovalStatus;
if(checkRole(['SALES_MAN'])&&("1"==bidApprovalStatus||"4"==bidApprovalStatus)){
this.ywyDis = true;
}
//-
this.getBidYwyFileList();
this.getBidTbbFileList();
@ -1447,6 +1540,16 @@ export default {
this.getBidHjFileList();
});
},
//
confirmBid() {
confirmBid(this.form).then(response => {
this.$modal.msgSuccess("确认成功");
this.open = false;
this.getList();
});
},
/** 保存按钮 */
saveForm() {
this.$refs["form"].validate(valid => {
@ -1821,6 +1924,21 @@ export default {
case '项目名称':
this.setIndexLabelValue(row,column);
break
case '网上报价':
this.setIndexLabelValue(row,column);
break
case '开标日期':
this.setIndexLabelValue(row,column);
break
case '投标状态':
this.setIndexLabelValue(row,column);
break
case '招标代理':
this.setIndexLabelValue(row,column);
break
case '联系电话':
this.setIndexLabelValue(row,column);
break
default: return
}
},
@ -1830,9 +1948,10 @@ export default {
this.tabClickLabel = column.label //
this.tabClickProperty = column.property //
this.tabClickValue = this.bidList[this.tabClickIndex]?this.bidList[this.tabClickIndex][this.tabClickProperty]:'';//
this.tabClickValue = this.tabClickValue==null?"":this.tabClickValue;
},
//
//
inputBlur() {
let param = {}
const tabId = this.tabId
@ -1852,9 +1971,23 @@ export default {
}
param = {'bidId':tabId,'bidAuthorizedRepresentative':tabClickValue}
}
if(this.tabClickLabel == '联系电话'){
if(!tabClickValue){
this.$modal.msgError("联系电话必填");
this.bidList[this.tabClickIndex][this.tabClickProperty] = this.tabClickValue;//
this.tabClickIndex = null
this.tabClickLabel = ''
return;
}
param = {'bidId':tabId,'bidAuthorizedPhone':tabClickValue}
}
if(this.tabClickLabel == '制标人'){
param = {'bidId':tabId,'bidZbr':tabClickValue}
}
if(this.tabClickLabel == '项目名称'){
if(!tabClickValue){
this.$modal.msgError("项目名称必填");
@ -1867,15 +2000,93 @@ export default {
param = {'bidId':tabId,'bidProject':tabClickValue}
}
if(this.tabClickLabel == '招标代理'){
param = {'bidId':tabId,'bidAgency':tabClickValue}
}
if(tabClickValue==this.tabClickValue){
this.tabClickIndex = null
this.tabClickLabel = ''
}else{
if(Object.keys(param).length!=0){//
this.updateListBid(param,this.tabClickLabel)
}else{
this.tabClickIndex = null
this.tabClickLabel = ''
}
}
},
//
selectBlur() {
let param = {}
const tabId = this.tabId
const tabClickIndex = this.tabClickIndex
const tabClickProperty = this.tabClickProperty
let tabClickValue = this.bidList[tabClickIndex]?this.bidList[tabClickIndex][tabClickProperty]:'';
tabClickValue = tabClickValue==null?"":tabClickValue;
if(this.tabClickLabel == '网上报价'){
param = {'bidId':tabId,'bidOnlineQuotation':tabClickValue}
}
if(this.tabClickLabel == '投标状态'){
param = {'bidId':tabId,'bidStatus':tabClickValue}
}
if(Object.keys(param).length!=0){//
this.updateListBid(param)
this.updateListBid(param,this.tabClickLabel)
}else{
this.tabClickIndex = null
this.tabClickLabel = ''
}
},
updateListBid(param){
this.$modal.confirm('是否保存所修改的投标信息?').then(function() {
//
selectDateBlur() {
let param = {}
const tabId = this.tabId
const tabClickIndex = this.tabClickIndex
const tabClickProperty = this.tabClickProperty
let tabClickValue = this.bidList[tabClickIndex] ? this.bidList[tabClickIndex][tabClickProperty] : '';
tabClickValue = tabClickValue == null ? "" : tabClickValue;
if (this.tabClickLabel == '开标日期') {
if(!tabClickValue){
this.$modal.msgError("开标日期必填");
this.bidList[this.tabClickIndex][this.tabClickProperty] = this.tabClickValue;//
this.tabClickIndex = null
this.tabClickLabel = ''
return;
}
param = {'bidId': tabId, 'bidOpeningDate': tabClickValue}
}
if(Object.keys(param).length!=0){//
this.updateListBid(param,this.tabClickLabel)
}else{
this.tabClickIndex = null
this.tabClickLabel = ''
}
},
changeBlur() {
let that = this
setTimeout(function(){
const tabClickIndex = that.tabClickIndex
const tabClickProperty = that.tabClickProperty
let tabClickValue = that.bidList[tabClickIndex]?that.bidList[tabClickIndex][tabClickProperty]:'';
tabClickValue = tabClickValue==null?"":tabClickValue;
if(tabClickValue==that.tabClickValue){
that.tabClickIndex = null
that.tabClickLabel = ''
}
},300)
},
//
updateListBid(param,labelName){
this.$modal.confirm('是否保存所修改的投标信息【'+labelName+'】?').then(function() {
return updateListBid(param)
}).then(() => {
this.$modal.msgSuccess("保存成功");

View File

@ -1,6 +1,7 @@
<template>
<el-table height="500" v-loading="loading" :data="records" :span-method="objectSpanMethod">
<el-table-column label="变更日期" align="center" prop="changeTime"/>
<el-table-column label="变更事件" align="center" prop="title"/>
<el-table-column label="变更字段" align="center" prop="changeField"/>
<el-table-column label="变更前" align="center" prop="beforeChange"/>
<el-table-column label="变更后" align="center" prop="afterChange"/>
@ -22,7 +23,7 @@
//
records: [],
mergeObj: {}, //
mergeArr: ['changeTime', 'createName'] //
mergeArr: ['changeTime','title', 'createName'] //
}
},
watch: {

View File

@ -9,7 +9,17 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="业务员" prop="pqSalesmanName">
<el-form-item label="说明" prop="pqIllustrate">
<el-select v-model="queryParams.pqIllustrate" placeholder="请选择说明" clearable>
<el-option
v-for="dict in dict.type.pq_illustrate"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="业务员" prop="pqSalesmanName" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-input
v-model="queryParams.pqSalesmanName"
placeholder="请输入业务员"
@ -17,6 +27,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="授权人" prop="pqAuthorizedRepresentative">
<el-input
v-model="queryParams.pqAuthorizedRepresentative"
placeholder="请输入授权人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="客户名称" prop="pqCustomerName">
<el-input
v-model="queryParams.pqCustomerName"
@ -33,6 +51,25 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开标日期">
<el-date-picker
v-model="daterangePqOpeningDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="制标人" prop="pqZbr" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])">
<el-input
v-model="queryParams.pqZbr"
placeholder="请输入制标人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="提交状态" prop="pqAapprovalStatus">
<el-select v-model="queryParams.pqAapprovalStatus" placeholder="请选择提交状态" clearable>
<el-option
@ -43,26 +80,6 @@
/>
</el-select>
</el-form-item>
<el-form-item label="是否存档" prop="pqArchiving">
<el-select v-model="queryParams.pqArchiving" placeholder="请选择是否存档" clearable>
<el-option
v-for="dict in dict.type.pq_archiving"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="授权状态" prop="pqEmpower">
<el-select v-model="queryParams.pqEmpower" placeholder="请选择授权状态" clearable>
<el-option
v-for="dict in dict.type.pq_empower"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -221,8 +238,15 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="授权人" prop="pqAuthorizedRepresentative">
<el-input v-model="form.pqAuthorizedRepresentative" placeholder="请输入授权人" />
<el-form-item label="说明" prop="pqIllustrate">
<el-select v-model="form.pqIllustrate" placeholder="请选择说明">
<el-option
v-for="dict in dict.type.pq_illustrate"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -233,13 +257,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<!--<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="中标备注" prop="pqBidWinningRemark">
<el-input type="textarea" autosize v-model="form.pqBidWinningRemark" placeholder="请输入中标备注" />
</el-form-item>
</el-col>
</el-row>
</el-row>-->
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="开标日期" prop="pqBidDate">
@ -252,8 +276,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制标人" prop="pqZbr">
<el-input v-model="form.pqZbr" placeholder="请输入制标人" />
<el-form-item label="招标代理" prop="pqAgency">
<el-input v-model="form.pqAgency" placeholder="请输入招标代理" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -271,15 +295,8 @@
</el-row>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="说明" prop="pqIllustrate">
<el-select v-model="form.pqIllustrate" placeholder="请选择说明">
<el-option
v-for="dict in dict.type.pq_illustrate"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<el-form-item label="授权人" prop="pqAuthorizedRepresentative">
<el-input v-model="form.pqAuthorizedRepresentative" placeholder="请输入授权人" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -293,10 +310,10 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-row :gutter="8" v-if="checkRole(['BID','BID_BSZZY','BID_ZHGLY'])" >
<el-col :span="8">
<el-form-item label="招标代理" prop="pqAgency">
<el-input v-model="form.pqAgency" placeholder="请输入招标代理" />
<el-form-item label="制标人" prop="pqZbr">
<el-input v-model="form.pqZbr" placeholder="请输入制标人" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -434,6 +451,8 @@ export default {
open: false,
//
customerOpen:false,
//
daterangePqOpeningDate: [],
//
queryParams: {
pageNum: 1,
@ -506,6 +525,11 @@ export default {
/** 查询资格预审列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangePqOpeningDate && '' != this.daterangePqOpeningDate) {
this.queryParams.params["beginPqOpeningDate"] = this.daterangePqOpeningDate[0];
this.queryParams.params["endPqOpeningDate"] = this.daterangePqOpeningDate[1];
}
listZgys(this.queryParams).then(response => {
this.zgysList = response.rows;
this.total = response.total;