This commit is contained in:
xd 2024-08-08 11:25:41 +08:00
parent 253fadb97c
commit e4eef5fb98
39 changed files with 449 additions and 155 deletions

View File

@ -2,13 +2,43 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1ea72584-8a6e-4fb7-9928-17671c0b6e92" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/domain/QuotSecDiff.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/authorize/AuthorizeController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/authorize/AuthorizeController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/authorize/AuthorizeController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/authorize/AuthorizeController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/bid/BidController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/bid/BidController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/zgys/ZgysController.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/com/ruoyi/web/controller/zgys/ZgysController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/ruoyi-admin.jar.original" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-common/target/ruoyi-common-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-framework/target/maven-archiver/pom.properties" afterDir="false" />
<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/authorize/domain/Authorize.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/authorize/domain/Authorize.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/domain/Quot.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/domain/Quot.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/domain/SysOaQuot.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/domain/SysOaQuot.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/mapper/QuotMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/mapper/QuotMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/service/IQuotService.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/service/IQuotService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/service/impl/QuotServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/java/com/ruoyi/quot/service/impl/QuotServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/authorize/AuthorizeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/authorize/AuthorizeMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/authorize/domain/Authorize.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/com/ruoyi/authorize/domain/Authorize.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/authorize/AuthorizeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/authorize/AuthorizeMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/quot/QuotMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/classes/mapper/quot/QuotMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-archiver/pom.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-system/target/ruoyi-system-3.8.7.jar" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-system/target/ruoyi-system-3.8.7.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/api/authorize/authorize.js" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/api/authorize/authorize.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/authorize/authorize/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/authorize/authorize/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/quot/quot/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/quot/quot/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-ui/src/views/statisticsQuot/statisticsQuot/index.vue" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -44,7 +74,7 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="android.sdk.path" value="$PROJECT_DIR$/../../Android" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="D:/xxl-job-master" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/ruoyi-ui/src/views/quot/quot" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="project.structure.last.edited" value="Modules" />
@ -57,18 +87,18 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.ruoyi.quot.domain" />
<recent name="com.ruoyi.web.controller.quot" />
<recent name="com.ruoyi.bid.domain" />
<recent name="com.ruoyi.quot.mapper" />
<recent name="com.ruoyi.quot.service.impl" />
<recent name="com.ruoyi.quot.service" />
<recent name="com.ruoyi.web.controller.quot" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\quot\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\api\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\statisticsQuot\statisticsQuot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-system\src\main\resources\mapper\quot" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-common" />
<recent name="E:\myproject\JNBusinessTest\ruoyi-ui\src\views\registeredCompany\registeredCompany" />
</key>
</component>
<component name="RunManager">
@ -98,6 +128,8 @@
<workItem from="1722934128238" duration="2182000" />
<workItem from="1722988626839" duration="17971000" />
<workItem from="1723017804486" duration="1336000" />
<workItem from="1723075283080" duration="10029000" />
<workItem from="1723086697484" duration="197000" />
</task>
<servers />
</component>
@ -109,14 +141,15 @@
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="2120" y="23" key="#Project_Structure/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722590259734" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser" timestamp="1723017851339">
<screen x="1920" y="0" width="1440" height="900" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser" timestamp="1723082505585">
<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="1722921565119" />
<state x="765" y="203" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723082505585" />
<state x="2494" y="176" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017851339" />
<state x="2215" y="10" key="CommitChangelistDialog2" timestamp="1722590562023">
<screen x="1920" y="0" width="1440" height="900" />
<state x="393" y="12" width="1379" height="879" key="CommitChangelistDialog2" timestamp="1723075441179">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="393" y="12" width="1379" height="879" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723075441179" />
<state x="2215" y="10" key="CommitChangelistDialog2/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1722590562023" />
<state width="1090" height="539" key="DebuggerActiveHint" timestamp="1722997368961">
<screen x="0" y="0" width="1920" height="1040" />
@ -128,46 +161,46 @@
</state>
<state x="740" y="274" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722996900988" />
<state x="2475" y="237" key="FileChooserDialogImpl/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017044285" />
<state width="1396" height="200" key="GridCell.Tab.0.bottom" timestamp="1723019145589">
<state width="1396" height="208" key="GridCell.Tab.0.bottom" timestamp="1723086215553">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145589" />
<state width="1396" height="200" key="GridCell.Tab.0.center" timestamp="1723019145588">
<state width="1876" height="305" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083651597" />
<state width="1396" height="208" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215553" />
<state width="1396" height="208" key="GridCell.Tab.0.center" timestamp="1723086215553">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224730" />
<state width="1396" height="200" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145588" />
<state width="1396" height="200" key="GridCell.Tab.0.left" timestamp="1723019145588">
<state width="1876" height="305" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083651597" />
<state width="1396" height="208" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215553" />
<state width="1396" height="208" key="GridCell.Tab.0.left" timestamp="1723086215552">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224730" />
<state width="1396" height="200" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145588" />
<state width="1396" height="200" key="GridCell.Tab.0.right" timestamp="1723019145588">
<state width="1876" height="305" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083651597" />
<state width="1396" height="208" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215552" />
<state width="1396" height="208" key="GridCell.Tab.0.right" timestamp="1723086215553">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145588" />
<state width="1396" height="200" key="GridCell.Tab.1.bottom" timestamp="1723019145589">
<state width="1876" height="305" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083651597" />
<state width="1396" height="208" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215553" />
<state width="1396" height="208" key="GridCell.Tab.1.bottom" timestamp="1723086215554">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145589" />
<state width="1396" height="200" key="GridCell.Tab.1.center" timestamp="1723019145589">
<state width="1876" height="305" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083321607" />
<state width="1396" height="208" key="GridCell.Tab.1.bottom/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215554" />
<state width="1396" height="208" key="GridCell.Tab.1.center" timestamp="1723086215554">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145589" />
<state width="1396" height="200" key="GridCell.Tab.1.left" timestamp="1723019145589">
<state width="1876" height="305" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083321607" />
<state width="1396" height="208" key="GridCell.Tab.1.center/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215554" />
<state width="1396" height="208" key="GridCell.Tab.1.left" timestamp="1723086215554">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145589" />
<state width="1396" height="200" key="GridCell.Tab.1.right" timestamp="1723019145589">
<state width="1876" height="305" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083321607" />
<state width="1396" height="208" key="GridCell.Tab.1.left/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215554" />
<state width="1396" height="208" key="GridCell.Tab.1.right" timestamp="1723086215554">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state width="1876" height="272" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722999224731" />
<state width="1396" height="200" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723019145589" />
<state width="1876" height="305" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723083321607" />
<state width="1396" height="208" key="GridCell.Tab.1.right/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723086215554" />
<state width="1876" height="288" key="GridCell.Tab.2.bottom" timestamp="1723017774091">
<screen x="1920" y="0" width="1440" height="900" />
</state>
@ -208,10 +241,10 @@
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="753" y="432" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722823330683" />
<state x="295" y="0" width="965" height="875" maximized="true" key="dock-window-1" timestamp="1723017838407">
<screen x="0" y="0" width="1920" height="1040" />
<state x="1926" y="0" width="1348" height="962" maximized="true" key="dock-window-1" timestamp="1723082762683">
<screen x="1920" y="0" width="1440" height="900" />
</state>
<state x="1920" y="0" width="1456" height="771" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1722923639492" />
<state x="1926" y="0" width="1348" height="962" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@0.0.1920.1040" timestamp="1723082762683" />
<state x="295" y="0" width="965" height="875" maximized="true" key="dock-window-1/0.0.1920.1040/1920.0.1440.900@1920.0.1440.900" timestamp="1723017838407" />
<state x="222" y="0" width="1213" height="875" maximized="true" key="dock-window-2" timestamp="1723018653242">
<screen x="0" y="0" width="1920" height="1040" />

View File

@ -220,35 +220,21 @@ public class AuthorizeController extends BaseController
}
/**
* 提交投标办经理按钮
*/
@PreAuthorize("@ss.hasPermi('authorize:authorize:commitJl')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.authorize.service.impl.AuthorizeServiceImpl",
serviceImplMethod="selectAuthorizeByDoaId",
tableId = "doaId",codeName = "doaCode",title = "投标办提交经理审批")
@PostMapping("/commitAuthorizeJl")
public AjaxResult commitAuthorizeJl(@RequestBody Authorize authorize)
{
try{
authorize.setDoaJlApprovalStatus("1");//更新经理审批状态为已提交
authorizeService.updateAuthorize(authorize);
return success();
}catch (Exception e){
return error("系统异常");
}
}
/**
* 投标办经理提交OA按钮
* 投标办提交OA按钮
*/
@PreAuthorize("@ss.hasPermi('authorize:authorize:commitOA')")
@ChangeRecordLog(serviceImplclass = "com.ruoyi.authorize.service.impl.AuthorizeServiceImpl",
serviceImplMethod="selectAuthorizeByDoaId",
tableId = "doaId",codeName = "doaCode",title = "投标办经理提交OA审批")
tableId = "doaId",codeName = "doaCode",title = "投标办提交OA审批")
@PostMapping("/commitAuthorizeOA")
public AjaxResult commitAuthorizeOA(@RequestBody Authorize authorize)
{
try{
String doa_oa_approval_status = authorize.getDoaOaApprovalStatus();
if("1".equals(doa_oa_approval_status)){
return error("已提交OA审批中,请勿重复操作");
}
// 投标提交OA,插入中间表 sys_oa_authorize
SysOaAuthorize sysOaAuthorize = new SysOaAuthorize();
SysOaAuthorize oauser = authorizeService.selectOAUserByUserName(getUsername());// 查询OA用户

View File

@ -496,6 +496,12 @@ public class BidController extends BaseController
@PostMapping("/commitJsBid")
public AjaxResult commitJsBid(@RequestBody Bid bid)
{
Bid bidInfo = bidService.selectBidByBidId(bid.getBidId());
String bid_jsxz_approval_status = bidInfo.getBidJsxzApprovalStatus();
if("1".equals(bid_jsxz_approval_status)){//技术协助状态为协助中 不可再次提交
return error("技术协助-当前技术协助中,请勿重新提交");
}
String bidJsxzGroup = "";
String bidJsxzGroupArr[] = bid.getBidJsxzGroup();
if(bidJsxzGroupArr.length>0){
@ -576,6 +582,12 @@ public class BidController extends BaseController
@PostMapping("/commitHjBid")
public AjaxResult commitHjBid(@RequestBody Bid bid)
{
Bid bidInfo = bidService.selectBidByBidId(bid.getBidId());
String bid_hj_approval_status = bidInfo.getBidHjApprovalStatus();
if("1".equals(bid_hj_approval_status)){//核价协助状态为协助中 不可再次提交
return error("核价协助-当前核价协助中,请勿重新提交");
}
BidHj bidHj = new BidHj();
String bidHjId = UUID.fastUUID().toString();
bidHj.setBidHjId(bidHjId);

View File

@ -813,6 +813,7 @@ public class QuotController extends BaseController
sysOaQuot.setQuotTongPrice(quot.getQuotTongPrice());
sysOaQuot.setQuotMatpriceDiff(quot.getQuotMatpriceDiff());
sysOaQuot.setQuotMatpriceDiff2(quot.getQuotMatpriceDiff2());
sysOaQuot.setQuotBjyRemark(quot.getQuotBjyRemark());
// 上传反馈清单
QuotFile quotFile = new QuotFile();
@ -1049,7 +1050,7 @@ public class QuotController extends BaseController
@GetMapping("/listStatisticsQuotQuot")
public TableDataInfo listStatisticsQuotQuot(Quot quot)
{
List<Quot> list = quotService.selectStatisticsQuotList(quot);
List<QuotSecDiff> list = quotService.selectStatisticsQuotList(quot);
return getDataTable(list);
}

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Wed Aug 07 15:17:04 CST 2024
#Thu Aug 08 10:18:08 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
#Wed Aug 07 15:16:51 CST 2024
#Thu Aug 08 10:17:35 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-common

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Wed Aug 07 15:16:58 CST 2024
#Thu Aug 08 10:17:52 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-framework

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Wed Aug 07 15:17:00 CST 2024
#Thu Aug 08 10:17:58 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-generator

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Wed Aug 07 15:16:59 CST 2024
#Thu Aug 08 10:17:56 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-quartz

View File

@ -25,18 +25,19 @@ public class Authorize extends BaseEntity
private String doaCode;
/** 授权编号-业务编码 */
@Excel(name = "授权编号")
@DataName(name = "授权编号")
private String doaNumber;
/** 业务经理账号 */
/** 业务账号 */
private String doaSalesmanCode;
/** 业务经理编码 */
/** 业务编码 */
private String doaSalesmanBm;
/** 业务经理 */
@DataName(name = "业务经理")
@Excel(name = "业务经理")
/** 业务 */
@DataName(name = "业务")
@Excel(name = "业务")
private String doaSalesmanName;
/** 部门id */
@ -46,8 +47,8 @@ public class Authorize extends BaseEntity
@DataName(name = "部门名")
private String doaSalesmanDeptName;
/** 业务经理电话 */
@DataName(name = "业务经理电话")
/** 业务电话 */
@DataName(name = "业务电话")
private String doaSalesmanPhone;
/** 项目名称 */
@ -93,9 +94,9 @@ public class Authorize extends BaseEntity
@DataName(name = "授权期限")
private String doaAuthorizationDuration;
/** 授权书用途(1-备案 2-出具授权 3-签约) */
@DataName(name = "授权书用途",readConverterExp="1=备案,2=出具授权,3=签约")
@Excel(name = "授权书用途")
/** 类别(1-授权书 2-备案) */
@DataName(name = "类别",readConverterExp="1=授权书,2=备案")
@Excel(name = "类别")
private String doaPowerAttorneyPurpose;
/** 有无格式(0-有 1-无) */
@ -114,6 +115,7 @@ public class Authorize extends BaseEntity
/** 制标员 */
@DataName(name = "制标员")
@Excel(name = "制标员")
private String doaStandardizer;
/** 是否存档(0-是 1-否) */
@ -127,7 +129,7 @@ public class Authorize extends BaseEntity
/** 业务员提交状态(0-待提交 1-协助中 2-已完成 3-已驳回) */
@DataName(name = "提交状态",readConverterExp="0=待提交,1=协助中,2=已完成,3=已驳回")
@Excel(name = "提交状态")
@Excel(name = "提交状态",dictType = "doa_approval_status")
private String doaApprovalStatus;
/** 副总审批状态(0-待提交 1-审批中 2-已完成 3-已驳回) */
@ -138,10 +140,6 @@ public class Authorize extends BaseEntity
@DataName(name = "OA反馈说明")
private String doaOaRemark;
/** 提交经理审批(0-待提交 1-已提交) */
@DataName(name = "提交经理审批",readConverterExp="0=待提交,1=已提交")
private String doaJlApprovalStatus;
/** 创建人 */
@DataName(name = "创建人")
private String createName;
@ -377,15 +375,6 @@ public class Authorize extends BaseEntity
{
return doaOaApprovalStatus;
}
public void setDoaJlApprovalStatus(String doaJlApprovalStatus)
{
this.doaJlApprovalStatus = doaJlApprovalStatus;
}
public String getDoaJlApprovalStatus()
{
return doaJlApprovalStatus;
}
public String getCreateName() { return createName; }
public void setCreateName(String createName) { this.createName = createName; }

View File

@ -1,11 +1,10 @@
package com.ruoyi.quot.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 报价对象 quot
@ -134,7 +133,8 @@ public class Quot extends BaseEntity
/** 报价单区分1报价生成询价单-传明细 2创建询价单-传附件) */
private String quotDistinguish;
/** 报价员备注 */
private String quotBjyRemark;
/** 技术协助 */
private String quotJsxzStandard;//技术协助-标准
@ -391,11 +391,12 @@ public class Quot extends BaseEntity
public String getQuotHandle() { return quotHandle; }
public void setQuotHandle(String quotHandle) { this.quotHandle = quotHandle; }
public String getQuotDistinguish() {return quotDistinguish;}
public void setQuotDistinguish(String quotDistinguish) {this.quotDistinguish = quotDistinguish;}
public String getQuotBjyRemark() { return quotBjyRemark; }
public void setQuotBjyRemark(String quotBjyRemark) { this.quotBjyRemark = quotBjyRemark; }
public List<QuotMaterial> getQuotMaterialList() { return quotMaterialList; }
public void setQuotMaterialList(List<QuotMaterial> quotMaterialList)

View File

@ -0,0 +1,141 @@
package com.ruoyi.quot.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 报价对象 quot
*
* @author ruoyi
* @date 2024-04-01
*/
public class QuotSecDiff extends BaseEntity
{
private String quotCode;
/** 业务员 */
private String quotSalesmanName;
/** 客户名称 */
private String quotCustomerName;
/** 询价日期 */
private Date quotInquiryDate;
/** 项目名称 */
private String quotProject;
/** 报价日期 */
private Date quotQuotationDate;
/** 明细条数 */
private Integer quotMaterialsCount;
/** 总价 */
private String quotTotalPrice;
/** 审核人 */
private String quotCheckUserNickname;
/** 创建人 */
private String createName;
/** 处理时间 */
private String secDiff;
public String getQuotCode() {
return quotCode;
}
public void setQuotCode(String quotCode) {
this.quotCode = quotCode;
}
public String getQuotSalesmanName() {
return quotSalesmanName;
}
public void setQuotSalesmanName(String quotSalesmanName) {
this.quotSalesmanName = quotSalesmanName;
}
public String getQuotCustomerName() {
return quotCustomerName;
}
public void setQuotCustomerName(String quotCustomerName) {
this.quotCustomerName = quotCustomerName;
}
public Date getQuotInquiryDate() {
return quotInquiryDate;
}
public void setQuotInquiryDate(Date quotInquiryDate) {
this.quotInquiryDate = quotInquiryDate;
}
public String getQuotProject() {
return quotProject;
}
public void setQuotProject(String quotProject) {
this.quotProject = quotProject;
}
public Date getQuotQuotationDate() {
return quotQuotationDate;
}
public void setQuotQuotationDate(Date quotQuotationDate) {
this.quotQuotationDate = quotQuotationDate;
}
public Integer getQuotMaterialsCount() {
return quotMaterialsCount;
}
public void setQuotMaterialsCount(Integer quotMaterialsCount) {
this.quotMaterialsCount = quotMaterialsCount;
}
public String getQuotTotalPrice() {
return quotTotalPrice;
}
public void setQuotTotalPrice(String quotTotalPrice) {
this.quotTotalPrice = quotTotalPrice;
}
public String getQuotCheckUserNickname() {
return quotCheckUserNickname;
}
public void setQuotCheckUserNickname(String quotCheckUserNickname) {
this.quotCheckUserNickname = quotCheckUserNickname;
}
public String getCreateName() {
return createName;
}
public void setCreateName(String createName) {
this.createName = createName;
}
public String getSecDiff() {
BigDecimal value = new BigDecimal(secDiff);
BigDecimal noZeros = value.stripTrailingZeros();
String result = noZeros.toPlainString();
return result;
}
public void setSecDiff(String secDiff) {
this.secDiff = secDiff;
}
}

View File

@ -1,6 +1,5 @@
package com.ruoyi.quot.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;
@ -69,6 +68,9 @@ public class SysOaQuot extends BaseEntity
/** 总价 */
private String quotTotalPrice;
/** 报价员备注 */
private String quotBjyRemark;
/** OA审批状态 */
private String state;
@ -211,6 +213,10 @@ public class SysOaQuot extends BaseEntity
public void setQuotTotalPrice(String quotTotalPrice) { this.quotTotalPrice = quotTotalPrice; }
public String getQuotBjyRemark() { return quotBjyRemark; }
public void setQuotBjyRemark(String quotBjyRemark) { this.quotBjyRemark = quotBjyRemark; }
public String getState() { return state; }
public void setState(String state) { this.state = state; }

View File

@ -1,9 +1,6 @@
package com.ruoyi.quot.mapper;
import com.ruoyi.quot.domain.Quot;
import com.ruoyi.quot.domain.QuotMaterial;
import com.ruoyi.quot.domain.QuotZb;
import com.ruoyi.quot.domain.SysOaQuot;
import com.ruoyi.quot.domain.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -174,7 +171,7 @@ public interface QuotMapper
* @param quot
* @return
*/
List<Quot> selectStatisticsQuotList(Quot quot);
List<QuotSecDiff> selectStatisticsQuotList(Quot quot);
/**
* 统计有效报价单模块-明细进单占比

View File

@ -1,6 +1,7 @@
package com.ruoyi.quot.service;
import com.ruoyi.quot.domain.Quot;
import com.ruoyi.quot.domain.QuotSecDiff;
import com.ruoyi.quot.domain.QuotZb;
import com.ruoyi.quot.domain.SysOaQuot;
@ -155,7 +156,7 @@ public interface IQuotService
* @param quot
* @return
*/
List<Quot> selectStatisticsQuotList(Quot quot);
List<QuotSecDiff> selectStatisticsQuotList(Quot quot);
/**
* 统计有效报价单模块-明细进单占比

View File

@ -6,10 +6,7 @@ import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.quot.domain.Quot;
import com.ruoyi.quot.domain.QuotMaterial;
import com.ruoyi.quot.domain.QuotZb;
import com.ruoyi.quot.domain.SysOaQuot;
import com.ruoyi.quot.domain.*;
import com.ruoyi.quot.mapper.QuotMapper;
import com.ruoyi.quot.service.IQuotService;
import org.springframework.beans.factory.annotation.Autowired;
@ -294,7 +291,7 @@ public class QuotServiceImpl implements IQuotService
* @return
*/
@Override
public List<Quot> selectStatisticsQuotList(Quot quot) {
public List<QuotSecDiff> selectStatisticsQuotList(Quot quot) {
return quotMapper.selectStatisticsQuotList(quot);
}

View File

@ -53,7 +53,7 @@
a.doa_owner_unit, a.doa_generalcontract_unit, a.doa_subcontract_unit, a.doa_authorizer, a.doa_authorizer_phone,
a.doa_authorizer_identification_number, a.doa_authorization_duration, a.doa_power_attorney_purpose,
a.doa_format, a.doa_remark, a.doa_rejection_reasons, a.doa_standardizer, a.doa_archiving, a.doa_vice_president_approved,
a.doa_approval_status, a.doa_oa_approval_status, a.doa_oa_remark, a.doa_jl_approval_status,
a.doa_approval_status, a.doa_oa_approval_status, a.doa_oa_remark,
a.create_by, u.nick_name create_name, a.create_time, a.update_by, a.update_time
from authorize a
<include refid="authorizeJoins"/>

View File

@ -48,6 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="quotHandle" column="quot_handle" />
<result property="quotDistinguish" column="quot_distinguish" />
<result property="quotBjyRemark" column="quot_bjy_remark" />
<result property="quotJsxzStandard" column="quot_jsxz_standard" />
<result property="quotJsxzApprovalStatus" column="quot_jsxz_approval_status" />
@ -122,7 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.quot_quotation_require, a.quot_feedback_explanation, a.quot_quantity, a.quot_total_price,
a.quot_check_user_name, u2.nick_name quot_check_user_nickname,a.quot_jsw_check_user_nickname,a.quot_bzr_user_nickname, a.quot_approval_status,a.quot_materials_count,a.quot_rbDateUid,
a.quot_lv_price,a.quot_tong_price,a.quot_matprice_diff,a.quot_matprice_diff2,a.quot_print,a.quot_print_user_name,u3.nick_name quot_print_user_nickName,
a.create_by, a.create_time, a.update_by, a.update_time, u.nick_name create_name,a.quot_handle,a.quot_distinguish,
a.create_by, a.create_time, a.update_by, a.update_time, u.nick_name create_name,a.quot_handle,a.quot_distinguish,a.quot_bjy_remark,
a.quot_jsxz_standard,a.quot_jsxz_approval_status,a.quot_jsxz_chapter,
a.quot_jsxz_technical_requirement,a.quot_jsxz_group_values,a.quot_jsxz_confirm_id,
@ -260,6 +261,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotPrint != null and quotPrint != ''">quot_print,</if>
<if test="quotPrintUserName != null and quotPrintUserName != ''">quot_print_user_name,</if>
<if test="quotDistinguish != null and quotDistinguish != ''">quot_distinguish,</if>
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if>
@ -311,6 +313,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotPrint != null and quotPrint != ''">#{quotPrint},</if>
<if test="quotPrintUserName != null and quotPrintUserName != ''">#{quotPrintUserName},</if>
<if test="quotDistinguish != null and quotDistinguish != ''">#{quotDistinguish},</if>
<if test="quotBjyRemark != null and quotBjyRemark != ''">#{quotBjyRemark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
@ -356,6 +359,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotMatpriceDiff2 != null and quotMatpriceDiff2 != ''">quot_matprice_diff2,</if>
<if test="quotFkFile != null and quotFkFile != ''">quot_fk_file,</if>
<if test="quotTotalPrice != null and quotTotalPrice != ''">quot_total_price,</if>
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark,</if>
<if test="createTime != null">create_time,</if>
<if test="isFinish != null and isFinish != ''">isFinish,</if>
@ -379,6 +383,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotMatpriceDiff2 != null and quotMatpriceDiff2 != ''">#{quotMatpriceDiff2},</if>
<if test="quotFkFile != null and quotFkFile != ''">#{quotFkFile},</if>
<if test="quotTotalPrice != null and quotTotalPrice != ''">#{quotTotalPrice},</if>
<if test="quotBjyRemark != null and quotBjyRemark != ''">#{quotBjyRemark},</if>
<if test="createTime != null">#{createTime},</if>
<if test="isFinish != null and isFinish != ''">#{isFinish},</if>
@ -420,6 +425,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotPrintUserName != null and quotPrintUserName != ''">quot_print_user_name = #{quotPrintUserName},</if>
<if test="quotJswCheckUserNickname != null and quotJswCheckUserNickname != ''">quot_jsw_check_user_nickname = #{quotJswCheckUserNickname},</if>
<if test="quotBzrUserNickname != null and quotBzrUserNickname != ''">quot_bzr_user_nickname = #{quotBzrUserNickname},</if>
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark = #{quotBjyRemark},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
@ -547,8 +553,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectStatisticsQuotList" parameterType="Quot" resultMap="QuotResult">
<include refid="selectQuotVo"/>
<select id="selectStatisticsQuotList" parameterType="Quot" resultType="QuotSecDiff">
<!--<include refid="selectQuotVo"/>
<where>
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
<if test="quotProject != null and quotProject != ''"> and quot_project like concat('%', #{quotProject}, '%')</if>
<if test="quotSalesmanName != null and quotSalesmanName != ''"> and quot_salesman_name like concat('%', #{quotSalesmanName}, '%')</if>
<if test="params.beginTime != null and params.beginTime != ''">&lt;!&ndash; 开始时间检索 &ndash;&gt;
and datediff(d, a.quot_quotation_date, #{params.beginTime}) <![CDATA[<=]]> 0
</if>
<if test="params.endTime != null and params.endTime != ''">&lt;!&ndash; 结束时间检索 &ndash;&gt;
and datediff(d, a.quot_quotation_date, #{params.endTime}) <![CDATA[>=]]> 0
</if>
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
</where>
order by a.quot_quotation_date desc-->
select a.quot_code quotCode,a.quot_salesman_name quotSalesmanName,a.quot_customer_name quotCustomerName,
a.quot_project quotProject, a.quot_materials_count quotMaterialsCount,
a.quot_total_price quotTotalPrice,a.quot_inquiry_date quotInquiryDate,a.quot_quotation_date quotQuotationDate,
a.quot_check_user_nickname quotCheckUserNickname,
a.create_name createName,a.create_time createTime,
ROUND(
<!--询价时间不超过11:30 并且 报价时间超过13:00 报价时间-询价时间-1.5h-->
(case when a.dayDiff = 0 and a.secDiff1 <![CDATA[>=]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff1+a.secDiff2
<!--询价时间超过11:30 并且 不超过13:00 并且 报价时间超过13:00 报价时间-1点-->
when a.dayDiff = 0 and a.secDiff1 <![CDATA[<]]> 0 and a.secDiff3 <![CDATA[<]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff2
<!--报价时间不超过11:30 报价时间-询价时间*//**询价时间超过13:00 报价时间-询价时间-->
when a.dayDiff = 0 then a.secDiff
<!--跨一天 减14个小时-->
when a.dayDiff = 1 then a.secDiff-14*3600
<!--跨n,n>1天 减(n-1)*24个小时-->
when a.dayDiff > 1 then a.secDiff-(a.dayDiff-1)*24*3600
else 0 end) / 3600.00, 2) secDiff
FROM (
select a.quot_code,a.quot_salesman_name,a.quot_customer_name,a.quot_project, a.quot_materials_count,
a.quot_total_price,a.quot_inquiry_date,a.quot_quotation_date,u2.nick_name quot_check_user_nickname,
u.nick_name create_name,a.create_time,
<!--询价时间与11:30的差值-->
datediff(second,quot_inquiry_date,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '11:30:00')) secDiff1,
<!--报价时间与13:00的差值-->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_quotation_date,111) + ' ' + '13:00:00'),quot_quotation_date) secDiff2,
<!--询价时间与13:00的差值-->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '13:00:00'),quot_inquiry_date) secDiff3,
datediff(day,quot_inquiry_date,quot_quotation_date) dayDiff,
datediff(second,quot_inquiry_date,quot_quotation_date) secDiff
from quot a
left join sys_user u on u.user_name=a.create_by
left join sys_user u2 on u2.user_name=a.quot_check_user_name
<where>
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
@ -562,6 +618,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
</where>
)a
order by a.quot_quotation_date desc
</select>
@ -602,7 +659,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
else 0 end secDiff
from (
select quot_code,quot_inquiry_date, quot_quotation_date,
<!-- 询价时间与11:30的差值 -->
<!-- 询价时间与11:30的差值 -->
datediff(second,quot_inquiry_date,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '11:30:00')) secDiff1,
<!-- 报价时间与13:00的差值 -->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_quotation_date,111) + ' ' + '13:00:00'),quot_quotation_date) secDiff2,

View File

@ -33,7 +33,6 @@
<result property="doaVicePresidentApproved" column="doa_vice_president_approved" />
<result property="doaApprovalStatus" column="doa_approval_status" />
<result property="doaOaApprovalStatus" column="doa_oa_approval_status" />
<result property="doaJlApprovalStatus" column="doa_jl_approval_status" />
<result property="doaOaRemark" column="doa_oa_remark" />
<result property="createBy" column="create_by" />
@ -54,7 +53,7 @@
a.doa_owner_unit, a.doa_generalcontract_unit, a.doa_subcontract_unit, a.doa_authorizer, a.doa_authorizer_phone,
a.doa_authorizer_identification_number, a.doa_authorization_duration, a.doa_power_attorney_purpose,
a.doa_format, a.doa_remark, a.doa_rejection_reasons, a.doa_standardizer, a.doa_archiving, a.doa_vice_president_approved,
a.doa_approval_status, a.doa_oa_approval_status, a.doa_oa_remark, a.doa_jl_approval_status,
a.doa_approval_status, a.doa_oa_approval_status, a.doa_oa_remark,
a.create_by, u.nick_name create_name, a.create_time, a.update_by, a.update_time
from authorize a
<include refid="authorizeJoins"/>
@ -113,7 +112,6 @@
<if test="doaVicePresidentApproved != null">doa_vice_president_approved,</if>
<if test="doaApprovalStatus != null">doa_approval_status,</if>
<if test="doaOaApprovalStatus != null">doa_oa_approval_status,</if>
<if test="doaJlApprovalStatus != null">doa_jl_approval_status,</if>
<if test="doaOaRemark != null">doa_oa_remark,</if>
<if test="createBy != null">create_by,</if>
@ -150,7 +148,6 @@
<if test="doaVicePresidentApproved != null">#{doaVicePresidentApproved},</if>
<if test="doaApprovalStatus != null">#{doaApprovalStatus},</if>
<if test="doaOaApprovalStatus != null">#{doaOaApprovalStatus},</if>
<if test="doaJlApprovalStatus != null">#{doaJlApprovalStatus},</if>
<if test="doaOaRemark != null">#{doaOaRemark},</if>
<if test="createBy != null">#{createBy},</if>
@ -248,7 +245,6 @@
<if test="doaVicePresidentApproved != null">doa_vice_president_approved = #{doaVicePresidentApproved},</if>
<if test="doaApprovalStatus != null">doa_approval_status = #{doaApprovalStatus},</if>
<if test="doaOaApprovalStatus != null">doa_oa_approval_status = #{doaOaApprovalStatus},</if>
<if test="doaJlApprovalStatus != null">doa_jl_approval_status = #{doaJlApprovalStatus},</if>
<if test="doaOaRemark != null">doa_oa_remark = #{doaOaRemark},</if>
<if test="createBy != null">create_by = #{createBy},</if>

View File

@ -547,8 +547,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectStatisticsQuotList" parameterType="Quot" resultMap="QuotResult">
<include refid="selectQuotVo"/>
<select id="selectStatisticsQuotList" parameterType="Quot" resultType="QuotSecDiff">
<!--<include refid="selectQuotVo"/>
<where>
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
<if test="quotProject != null and quotProject != ''"> and quot_project like concat('%', #{quotProject}, '%')</if>
<if test="quotSalesmanName != null and quotSalesmanName != ''"> and quot_salesman_name like concat('%', #{quotSalesmanName}, '%')</if>
<if test="params.beginTime != null and params.beginTime != ''">&lt;!&ndash; 开始时间检索 &ndash;&gt;
and datediff(d, a.quot_quotation_date, #{params.beginTime}) <![CDATA[<=]]> 0
</if>
<if test="params.endTime != null and params.endTime != ''">&lt;!&ndash; 结束时间检索 &ndash;&gt;
and datediff(d, a.quot_quotation_date, #{params.endTime}) <![CDATA[>=]]> 0
</if>
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
</where>
order by a.quot_quotation_date desc-->
select a.quot_code quotCode,a.quot_salesman_name quotSalesmanName,a.quot_customer_name quotCustomerName,
a.quot_project quotProject, a.quot_materials_count quotMaterialsCount,
a.quot_total_price quotTotalPrice,a.quot_inquiry_date quotInquiryDate,a.quot_quotation_date quotQuotationDate,
a.quot_check_user_nickname quotCheckUserNickname,
a.create_name createName,a.create_time createTime,
ROUND(
<!--询价时间不超过11:30 并且 报价时间超过13:00 报价时间-询价时间-1.5h-->
(case when a.dayDiff = 0 and a.secDiff1 <![CDATA[>=]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff1+a.secDiff2
<!--询价时间超过11:30 并且 不超过13:00 并且 报价时间超过13:00 报价时间-1点-->
when a.dayDiff = 0 and a.secDiff1 <![CDATA[<]]> 0 and a.secDiff3 <![CDATA[<]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff2
<!--报价时间不超过11:30 报价时间-询价时间*//**询价时间超过13:00 报价时间-询价时间-->
when a.dayDiff = 0 then a.secDiff
<!--跨一天 减14个小时-->
when a.dayDiff = 1 then a.secDiff-14*3600
<!--跨n,n>1天 减(n-1)*24个小时-->
when a.dayDiff > 1 then a.secDiff-(a.dayDiff-1)*24*3600
else 0 end) / 3600.00, 2) secDiff
FROM (
select a.quot_code,a.quot_salesman_name,a.quot_customer_name,a.quot_project, a.quot_materials_count,
a.quot_total_price,a.quot_inquiry_date,a.quot_quotation_date,u2.nick_name quot_check_user_nickname,
u.nick_name create_name,a.create_time,
<!--询价时间与11:30的差值-->
datediff(second,quot_inquiry_date,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '11:30:00')) secDiff1,
<!--报价时间与13:00的差值-->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_quotation_date,111) + ' ' + '13:00:00'),quot_quotation_date) secDiff2,
<!--询价时间与13:00的差值-->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '13:00:00'),quot_inquiry_date) secDiff3,
datediff(day,quot_inquiry_date,quot_quotation_date) dayDiff,
datediff(second,quot_inquiry_date,quot_quotation_date) secDiff
from quot a
left join sys_user u on u.user_name=a.create_by
left join sys_user u2 on u2.user_name=a.quot_check_user_name
<where>
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
@ -562,6 +612,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
</where>
)a
order by a.quot_quotation_date desc
</select>
@ -587,26 +638,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectHandleTime" resultType="String">
select ROUND(sum(secDiff)/ 3600.00 /count(1), 2) diff from (
select case when a.dayDiff = 0 then a.secDiff
select a.quot_code,
<!--询价时间不超过11:30 并且 报价时间超过13:00 报价时间-询价时间-1.5h -->
case when a.dayDiff = 0 and a.secDiff1 <![CDATA[>=]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff1+a.secDiff2
<!--询价时间超过11:30 并且 不超过13:00 并且 报价时间超过13:00 报价时间-1点 -->
when a.dayDiff = 0 and a.secDiff1 <![CDATA[<]]> 0 and a.secDiff3 <![CDATA[<]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff2
<!--报价时间不超过11:30 报价时间-询价时间-->
<!--询价时间超过13:00 报价时间-询价时间 -->
when a.dayDiff = 0 then a.secDiff
<!--跨一天 减14个小时 -->
when a.dayDiff = 1 then a.secDiff-14*3600
when a.dayDiff > 1 then a.secDiff-(a.dayDiff-1)*24*3600
<!--跨n,n>1天 减(n-1)*24个小时 -->
when a.dayDiff <![CDATA[>]]> 1 then a.secDiff-(a.dayDiff-1)*24*3600
else 0 end secDiff
from (
select quot_inquiry_date, quot_quotation_date,
select quot_code,quot_inquiry_date, quot_quotation_date,
<!-- 询价时间与11:30的差值 -->
datediff(second,quot_inquiry_date,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '11:30:00')) secDiff1,
<!-- 报价时间与13:00的差值 -->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_quotation_date,111) + ' ' + '13:00:00'),quot_quotation_date) secDiff2,
<!-- 询价时间与13:00的差值 -->
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '13:00:00'),quot_inquiry_date) secDiff3,
datediff(day,quot_inquiry_date,quot_quotation_date) dayDiff,
datediff(second,quot_inquiry_date,quot_quotation_date) secDiff
from quot a
<where>
and quot_approval_status = '2' and quot_jsxz_approval_status='0'
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
and datediff(d, quot_quotation_date, #{params.beginTime}) <![CDATA[<=]]> 0
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and datediff(d, quot_quotation_date, #{params.endTime}) <![CDATA[>=]]> 0
</if>
</where>
from quot a
<where>
and quot_approval_status = '2' and quot_jsxz_approval_status='0'
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
and datediff(d, quot_quotation_date, #{params.beginTime}) <![CDATA[<=]]> 0
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and datediff(d, quot_quotation_date, #{params.endTime}) <![CDATA[>=]]> 0
</if>
</where>
)a
)a
)a
</select>

View File

@ -1,5 +1,5 @@
#Generated by Maven
#Wed Aug 07 15:16:54 CST 2024
#Thu Aug 08 10:17:39 CST 2024
version=3.8.7
groupId=com.ruoyi
artifactId=ruoyi-system

View File

@ -36,6 +36,7 @@ com\ruoyi\authorize\service\IAuthorizeFileService.class
com\ruoyi\system\mapper\SysDictTypeMapper.class
com\ruoyi\clMaterial\service\ICYlMaterialService.class
com\ruoyi\materialType\service\ICMaterialTypeService.class
com\ruoyi\quot\domain\QuotSecDiff.class
com\ruoyi\system\mapper\SysUserPostMapper.class
com\ruoyi\material\domain\CMaterialCost.class
com\ruoyi\customer\domain\qcc\Verify.class

View File

@ -35,6 +35,7 @@ E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quot\domain\jsw
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\customer\domain\qcc\QccVerifyJsonResult.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\factory\domain\CMaterialTypeFactory.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quot\domain\jsw\QuotJswMaterial.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quot\domain\QuotSecDiff.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\system\domain\LoginParams.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\zgys\service\IZgysService.java
E:\myproject\JNBusinessTest\ruoyi-system\src\main\java\com\ruoyi\quot\domain\jsw\QuotJswInfo.java

View File

@ -70,15 +70,6 @@ export function commitAuthorize(data) {
})
}
//投标办提交经理按钮
export function commitAuthorizeJl(data) {
return request({
url: '/authorize/authorize/commitAuthorizeJl',
method: 'post',
data: data
})
}
//投标办经理提交OA按钮
export function commitAuthorizeOA(data) {
return request({

View File

@ -9,8 +9,8 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="授权书用途" prop="doaPowerAttorneyPurpose">
<el-select v-model="queryParams.doaPowerAttorneyPurpose" placeholder="请选择授权书用途" clearable>
<el-form-item label="类别" prop="doaPowerAttorneyPurpose">
<el-select v-model="queryParams.doaPowerAttorneyPurpose" placeholder="请选择类别" clearable>
<el-option
v-for="dict in dict.type.doa_power_attorney_purpose"
:key="dict.value"
@ -19,10 +19,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="业务经理" prop="doaSalesmanName">
<el-form-item label="业务" prop="doaSalesmanName">
<el-input
v-model="queryParams.doaSalesmanName"
placeholder="请输入业务经理"
placeholder="请输入业务"
clearable
@keyup.enter.native="handleQuery"
/>
@ -153,6 +153,11 @@
</template>
</el-table-column>
<el-table-column fixed label="授权编号" align="center" prop="doaNumber" width="100px" />
<el-table-column fixed label="提交状态" align="center" prop="doaApprovalStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.doa_approval_status" :value="scope.row.doaApprovalStatus"/>
</template>
</el-table-column>
<el-table-column label="类别" align="center" prop="doaPowerAttorneyPurpose" width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.doa_power_attorney_purpose" :value="scope.row.doaPowerAttorneyPurpose"/>
@ -164,11 +169,6 @@
<el-table-column label="授权人电话" align="center" prop="doaAuthorizerPhone" width="100px"/>
<el-table-column label="业务员" align="center" prop="doaSalesmanName" width="150px"/>
<el-table-column label="备注" align="center" prop="doaRemark" width="250px"/>
<el-table-column label="提交状态" align="center" prop="doaApprovalStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.doa_approval_status" :value="scope.row.doaApprovalStatus"/>
</template>
</el-table-column>
<el-table-column label="驳回原因" align="center" prop="doaRejectionReasons" width="250px"/>
<el-table-column label="制标员" align="center" prop="doaStandardizer" width="250px"/>
<el-table-column label="副总审批" align="center" prop="doaVicePresidentApproved" width="150px"/>
@ -198,7 +198,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="副总审批状态" prop="doaOaApprovalStatus">
<el-form-item label="OA审批状态" prop="doaOaApprovalStatus">
<dict-tag :options="dict.type.doa_oa_approval_status" :value="this.form.doaOaApprovalStatus"/>
</el-form-item>
</el-col>
@ -529,7 +529,7 @@ export default {
{ required: true, message: "授权人身份证号不能为空", trigger: "blur" }
],
doaPowerAttorneyPurpose: [
{ required: true, message: "授权书用途不能为空", trigger: "change" }
{ required: true, message: "类别不能为空", trigger: "change" }
],
doaFormat: [
{ required: true, message: "有无格式不能为空", trigger: "change" }
@ -567,6 +567,16 @@ export default {
}
},
created() {
const roles = this.$store.state.user.roles;
if(roles.indexOf('SALES_MAN') == -1 && roles.indexOf('admin') == -1){//
this.queryParams.doaApprovalStatus = '1';
this.queryParams.orderByColumn = "a.doa_number";//
this.queryParams.isAsc = "desc";//
}
if(roles.indexOf('SALES_MAN') != -1|| roles.indexOf('admin') !== -1){//
this.queryParams.orderByColumn = "a.create_time";//
this.queryParams.isAsc = "desc";//
}
this.getList();
},
methods: {

View File

@ -426,7 +426,14 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','SALES_MAN','HTB_QUOT'])">
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','HTB_QUOT','admin'])">
<el-col :span="24" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
<el-form-item label="报价员备注" prop="quotBjyRemark">
<el-input type="textarea" autosize v-model="form.quotBjyRemark" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2 || this.form.quotApprovalStatus == 3"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','SALES_MAN','HTB_QUOT','admin'])">
<el-col :span="14" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
<el-form-item label="反馈说明" prop="quotFeedbackExplanation">
<el-input type="textarea" style="width:80%" autosize v-model="form.quotFeedbackExplanation" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2 || this.form.quotApprovalStatus == 3"/>
@ -439,7 +446,6 @@
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left" class="customer_divider_text">清单附件(先保存再上传且必须是EXCEL文件)</el-divider>
<div v-hasPermi="['quot:quot:quotXjFile']">
<el-row :gutter="10" class="mb8">
@ -1291,6 +1297,7 @@ export default {
quotQuotationRequire: null,
quotFeedbackExplanation: null,
quotOAApprovalStatusRemark: null,
quotBjyRemark: null,
quotApprovalStatus: null,
quotPrintUserName: null,

View File

@ -87,6 +87,7 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="处理时长(小时)" align="center" prop="secDiff" width="150px"/>
</el-table>
</div>
</template>