Pārlūkot izejas kodu

11482-【CR】【投资系统】增加审批流程-可申请列表

hxy 1 mēnesi atpakaļ
vecāks
revīzija
23b1676a28

+ 52 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ApprovalController.java

@@ -48,6 +48,58 @@ public class ApprovalController extends BaseController {
         List<ProjectApprovalVo> list=approvalService.selectAllApprovalList(tProjectApproval);
         return getDataTable(list);
     }
+    /**
+     * 导出所有项目立项流程列表
+     */
+    @ApiOperation("导出所有项目立项流程列表")
+    @Log(title = "所有项目立项流程列表", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TProjectApproval tProjectApproval)
+    {
+        List<ProjectApprovalVo> list=approvalService.selectAllApprovalList(tProjectApproval)
+                .stream().map(n -> {
+                    if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
+                    if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
+                    if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
+                    if(StringUtils.isNotEmpty(n.getProjectStatus())){
+                        if("0".equals(n.getProjectStatus())){
+                            n.setProjectStatus("正常");
+                        }else if("1".equals(n.getProjectStatus())){
+                            n.setProjectStatus("终止");
+                        }else if("2".equals(n.getProjectStatus())){
+                            n.setProjectStatus("观望");
+                        }
+                    }
+                    return n;
+                })
+                .collect(Collectors.toList());
+        ExcelUtil<ProjectApprovalVo> util = new ExcelUtil<ProjectApprovalVo>(ProjectApprovalVo.class);
+        util.exportExcel(response, list, "所有项目立项流程数据");
+    }
+    /**
+     * 查询可申请的项目立项列表
+     */
+    @ApiOperation("查询可申请项目立项列表")
+    @PreAuthorize("@ss.hasPermi('invest:pool:list')")
+    @GetMapping("/applicableList")
+    public TableDataInfo applicableList( TProjectPool tProjectPool)
+    {
+        startPage();
+        tProjectPool.setProjectStage("3");
+        tProjectPool.setDelFlag("0");
+        tProjectPool.setApprovalFlag("0");//未发起立项的
+        tProjectPool.setStatus(3);//项目机会流程状态为审批通过
+        tProjectPool.setProjectStatus(tProjectPool.getProjectStatus());
+        List<TProjectPool> list = investmentOpportunityService.selectApplicableProjectList(tProjectPool)
+                .stream().map(n -> {
+                    n.settProjectMeeting(tProjectMeetingService.listProjectPoolIdNew(n.getId(),"LX"));
+                    if(null != n.gettProjectMeeting()){
+                        n.settProjectScoring(tProjectScoringService.getCanScoringMeetingId(n.gettProjectMeeting().getId(),getUserId()));
+                    }
+                    return n;
+                }).collect(Collectors.toList());
+        return getDataTable(list);
+    }
     //我的待办任务
     @ApiOperation("我的待办任务列表")
     @PreAuthorize("@ss.hasPermi('invest:pool:list')")

+ 51 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DecisionController.java

@@ -49,7 +49,57 @@ public class DecisionController extends BaseController {
         List<ProjectDecisionVo> list=decisionService.selectAllDecisionList(tProjectDecision);
         return getDataTable(list);
     }
-
+    /**
+     * 导出所有项目投决流程列表
+     */
+    @ApiOperation("导出所有项目投决流程列表")
+    @Log(title = "所有项目投决流程列表", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TProjectDecision tProjectDecision)
+    {
+        List<ProjectDecisionVo> list=decisionService.selectAllDecisionList(tProjectDecision)
+                .stream().map(n -> {
+                    if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
+                    if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
+                    if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
+                    if(StringUtils.isNotEmpty(n.getProjectStatus())){
+                        if("0".equals(n.getProjectStatus())){
+                            n.setProjectStatus("正常");
+                        }else if("1".equals(n.getProjectStatus())){
+                            n.setProjectStatus("终止");
+                        }else if("2".equals(n.getProjectStatus())){
+                            n.setProjectStatus("观望");
+                        }
+                    }
+                    return n;
+                })
+                .collect(Collectors.toList());
+        ExcelUtil<ProjectDecisionVo> util = new ExcelUtil<ProjectDecisionVo>(ProjectDecisionVo.class);
+        util.exportExcel(response, list, "所有项目投决流程数据");
+    }
+    /**
+     * 查询可申请项目投决列表
+     */
+    @ApiOperation("查询可申请项目投决列表")
+    @PreAuthorize("@ss.hasPermi('invest:pool:list')")
+    @GetMapping("/applicableList")
+    public TableDataInfo applicableList(TProjectPool tProjectPool)
+    {
+        startPage();
+        tProjectPool.setProjectStage("5");
+        tProjectPool.setDelFlag("0");
+        tProjectPool.setDecisionFlag("0");//未发起投决
+        tProjectPool.setStatus(3);//项目机会流程状态为审批通过
+        tProjectPool.setProjectStatus(tProjectPool.getProjectStatus());
+        List<TProjectPool> list = investmentOpportunityService.selectApplicableProjectList(tProjectPool).stream().map(n -> {
+            n.settProjectMeeting(tProjectMeetingService.listProjectPoolIdNew(n.getId(),"TJ"));
+            if(null != n.gettProjectMeeting()){
+                n.settProjectScoring(tProjectScoringService.getCanScoringMeetingId(n.gettProjectMeeting().getId(),getUserId()));
+            }
+            return n;
+        }).collect(Collectors.toList());
+        return getDataTable(list);
+    }
     //我的待办任务
     @ApiOperation("我的待办任务列表")
     @PreAuthorize("@ss.hasPermi('invest:pool:list')")

+ 52 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/InvestigateController.java

@@ -42,6 +42,58 @@ public class InvestigateController extends BaseController {
         List<ProjectInvestigateVo> list=investigateService.selectAllInvestigateList(tProjectInvestigate);
         return getDataTable(list);
     }
+    /**
+     * 导出所有项目背调流程列表
+     */
+    @ApiOperation("导出所有项目背调流程列表")
+    @Log(title = "所有项目背调流程列表", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TProjectInvestigate tProjectInvestigate)
+    {
+        List<ProjectInvestigateVo> list=investigateService.selectAllInvestigateList(tProjectInvestigate)
+                .stream().map(n -> {
+                    if(StringUtils.isNotEmpty(n.getIndustry()))n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
+                    if(StringUtils.isNotEmpty(n.getProjectStage()))n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
+                    if(StringUtils.isNotEmpty(n.getProjectState()))n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
+                    if(StringUtils.isNotEmpty(n.getProjectStatus())){
+                        if("0".equals(n.getProjectStatus())){
+                            n.setProjectStatus("正常");
+                        }else if("1".equals(n.getProjectStatus())){
+                            n.setProjectStatus("终止");
+                        }else if("2".equals(n.getProjectStatus())){
+                            n.setProjectStatus("观望");
+                        }
+                    }
+                    return n;
+                })
+                .collect(Collectors.toList());
+        ExcelUtil<ProjectInvestigateVo> util = new ExcelUtil<ProjectInvestigateVo>(ProjectInvestigateVo.class);
+        util.exportExcel(response, list, "所有项目背调流程数据");
+    }
+    /**
+     * 查询可申请尽职背调列表
+     */
+    @ApiOperation("查询可申请尽职背调列表")
+    @PreAuthorize("@ss.hasPermi('invest:pool:list')")
+    @GetMapping("/applicableList")
+    public TableDataInfo applicableList(TProjectPool tProjectPool)
+    {
+        startPage();
+        tProjectPool.setProjectStage("4");
+        tProjectPool.setDelFlag("0");
+        tProjectPool.setInvestigateFlag("0");//未发起背调的
+        tProjectPool.setStatus(3);//项目机会流程状态为审批通过
+        tProjectPool.setProjectStatus(tProjectPool.getProjectStatus());
+        List<TProjectPool> list = investmentOpportunityService.selectApplicableProjectList(tProjectPool)
+                .stream().map(n -> {
+                    n.settProjectInvestigate(tProjectInvestigateService.listProjectPoolIdNew(n.getId()));
+                    if(null != n.gettProjectInvestigate()){
+                        n.settProjectInvestigatePerson(tProjectInvestigatePersonService.selectByProjectInvestigateId(n.gettProjectInvestigate().getId(),getUserId()));
+                    }
+                    return n;
+                }).collect(Collectors.toList());
+        return getDataTable(list);
+    }
     //我的待办任务
     @ApiOperation("我的待办任务列表")
     @PreAuthorize("@ss.hasPermi('invest:pool:list')")

+ 9 - 8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/TerminationController.java

@@ -53,18 +53,19 @@ public class TerminationController extends BaseController {
     }
 
     /**
-     * 查询项目终止列表
+     * 查询可申请项目终止列表
      */
-    @ApiOperation("查询项目终止列表")
+    @ApiOperation("查询可申请项目终止列表")
     @PreAuthorize("@ss.hasPermi('invest:pool:list')")
-    @GetMapping("/listTermination")
-    public TableDataInfo listTermination(TProjectPool tProjectPool)
+    @GetMapping("/applicableList")
+    public TableDataInfo applicableList(TProjectPool tProjectPool)
     {
         startPage();
-        //tProjectPool.setProjectStage("8");
-        tProjectPool.setDelFlag("0");
-        //List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool);
-        List<TProjectPool> list = investmentOpportunityService.selectTProjectList(tProjectPool);
+        //tProjectPool.setProjectStage("5");
+        tProjectPool.setDelFlag("0");//
+        tProjectPool.setStatus(3);//项目机会流程状态为审批通过
+        tProjectPool.setProjectStatus(tProjectPool.getProjectStatus());//观望
+        List<TProjectPool> list = investmentOpportunityService.selectApplicableProjectList(tProjectPool);
         return getDataTable(list);
     }
     //我的待办任务

+ 38 - 5
ruoyi-ui/src/views/project/approval/projectItem.vue

@@ -7,6 +7,22 @@
       width="800px"
       append-to-body
     >
+      <!-- 查询表单区域 -->
+      <el-form :model="projectQueryParams" ref="queryForm" inline>
+        <el-form-item label="项目名称" prop="projectName">
+          <el-input
+            v-model.trim="projectQueryParams.projectName"
+            placeholder="请输入项目名称"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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>
+        </el-form-item>
+      </el-form>
       <el-table
         class="tableWrapper"
         @row-click="clickRow"
@@ -115,7 +131,7 @@
   </div>
 </template>
 <script>
-import { listApprovalList } from "@/api/invest/pool";
+import { applicableListApproval } from "@/api/project/approval/pool";
 import { mapGetters } from "vuex";
 export default {
   props: {
@@ -136,6 +152,8 @@ export default {
         pageSize: 10,
         orderByColumn: "createTime",
         isAsc: "desc",
+        projectStatus:null,
+        projectName:null
       },
 
       // 选中数组
@@ -155,12 +173,12 @@ export default {
   },
   methods: {
     // 刷新项目列表的方法
-    refreshProjectList() {
+    refreshProjectList(isWatch) {
       // 清空现有列表
       this.poolList = [];
       this.projectItemTotal=0;
       // 重新请求接口获取最新数据
-      this.getList();
+      this.getList(isWatch);
     },
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
@@ -178,8 +196,13 @@ export default {
       this.ids = selection;
     },
     /** 查询项目池列表 */
-    getList() {
-      listApprovalList(this.projectQueryParams).then((response) => {
+    getList(isWatch) {
+      if(isWatch){
+        this.projectQueryParams.projectStatus=2;
+      }else {
+        this.projectQueryParams.projectStatus=0;
+      }
+      applicableListApproval(this.projectQueryParams).then((response) => {
         this.poolList = response.rows;
         this.projectItemTotal = response.total;
       });
@@ -217,6 +240,16 @@ export default {
     cancel() {
       this.showProjectItem = false;
     },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.projectQueryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
   },
 };
 </script>

+ 38 - 5
ruoyi-ui/src/views/project/decision/projectItem.vue

@@ -7,6 +7,22 @@
       width="800px"
       append-to-body
     >
+      <!-- 查询表单区域 -->
+      <el-form :model="projectQueryParams" ref="queryForm" inline>
+        <el-form-item label="项目名称" prop="projectName">
+          <el-input
+            v-model.trim="projectQueryParams.projectName"
+            placeholder="请输入项目名称"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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>
+        </el-form-item>
+      </el-form>
       <el-table
         class="tableWrapper"
         @row-click="clickRow"
@@ -115,7 +131,7 @@
   </div>
 </template>
 <script>
-import { listDecisionList } from "@/api/invest/pool";
+import { applicableListDecision } from "@/api/project/decision/pool";
 import { mapGetters } from "vuex";
 export default {
   props: {
@@ -136,6 +152,8 @@ export default {
         pageSize: 10,
         orderByColumn: "createTime",
         isAsc: "desc",
+        projectStatus:null,
+        projectName:null
       },
 
       // 选中数组
@@ -155,12 +173,12 @@ export default {
   },
   methods: {
     // 刷新项目列表的方法
-    refreshProjectList() {
+    refreshProjectList(isWatch) {
       // 清空现有列表
       this.poolList = [];
       this.projectItemTotal=0;
       // 重新请求接口获取最新数据
-      this.getList();
+      this.getList(isWatch);
     },
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
@@ -178,8 +196,13 @@ export default {
       this.ids = selection;
     },
     /** 查询项目池列表 */
-    getList() {
-      listDecisionList(this.projectQueryParams).then((response) => {
+    getList(isWatch) {
+      if(isWatch){
+        this.projectQueryParams.projectStatus=2;
+      }else {
+        this.projectQueryParams.projectStatus=0;
+      }
+      applicableListDecision(this.projectQueryParams).then((response) => {
         this.poolList = response.rows;
         this.projectItemTotal = response.total;
       });
@@ -217,6 +240,16 @@ export default {
     cancel() {
       this.showProjectItem = false;
     },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.projectQueryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
   },
 };
 </script>

+ 38 - 5
ruoyi-ui/src/views/project/investigate/projectItem.vue

@@ -7,6 +7,22 @@
       width="800px"
       append-to-body
     >
+      <!-- 查询表单区域 -->
+      <el-form :model="projectQueryParams" ref="queryForm" inline>
+        <el-form-item label="项目名称" prop="projectName">
+          <el-input
+            v-model.trim="projectQueryParams.projectName"
+            placeholder="请输入项目名称"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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>
+        </el-form-item>
+      </el-form>
       <el-table
         class="tableWrapper"
         @row-click="clickRow"
@@ -115,7 +131,7 @@
   </div>
 </template>
 <script>
-import { listInvestigateList } from "@/api/invest/pool";
+import { applicableListInvestigate } from "@/api/project/investigate/pool";
 import { mapGetters } from "vuex";
 export default {
   props: {
@@ -136,6 +152,8 @@ export default {
         pageSize: 10,
         orderByColumn: "createTime",
         isAsc: "desc",
+        projectStatus:null,
+        projectName:null
       },
 
       // 选中数组
@@ -155,12 +173,12 @@ export default {
   },
   methods: {
     // 刷新项目列表的方法
-    refreshProjectList() {
+    refreshProjectList(isWatch) {
       // 清空现有列表
       this.poolList = [];
       this.projectItemTotal=0;
       // 重新请求接口获取最新数据
-      this.getList();
+      this.getList(isWatch);
     },
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
@@ -178,8 +196,13 @@ export default {
       this.ids = selection;
     },
     /** 查询项目池列表 */
-    getList() {
-      listInvestigateList(this.projectQueryParams).then((response) => {
+    getList(isWatch) {
+      if(isWatch){
+        this.projectQueryParams.projectStatus=2;
+      }else {
+        this.projectQueryParams.projectStatus=0;
+      }
+      applicableListInvestigate(this.projectQueryParams).then((response) => {
         this.poolList = response.rows;
         this.projectItemTotal = response.total;
       });
@@ -217,6 +240,16 @@ export default {
     cancel() {
       this.showProjectItem = false;
     },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.projectQueryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
   },
 };
 </script>

+ 98 - 6
ruoyi-ui/src/views/project/termination/projectItem.vue

@@ -7,6 +7,22 @@
       width="800px"
       append-to-body
     >
+      <!-- 查询表单区域 -->
+      <el-form :model="projectQueryParams" ref="queryForm" inline>
+        <el-form-item label="项目名称" prop="projectName">
+          <el-input
+            v-model.trim="projectQueryParams.projectName"
+            placeholder="请输入项目名称"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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>
+        </el-form-item>
+      </el-form>
       <el-table
         class="tableWrapper"
         @row-click="clickRow"
@@ -60,13 +76,64 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="项目状态" align="center" prop="projectState">
+<!--        <el-table-column label="项目状态" align="center" prop="projectState">
           <template slot-scope="scope">
             <dict-tag
               :options="dict.type.project_state"
               :value="scope.row.projectState"
             />
           </template>
+        </el-table-column>-->
+        <el-table-column label="项目机会状态" align="center" prop="projectStatus">
+          <template slot-scope="scope">
+            <!-- 定义状态文本映射对象 -->
+            <el-tag
+              :type="{
+              0: 'success',
+              1: 'danger',
+              2: 'warning'
+            }[scope.row.projectStatus] || 'info'"
+            >
+              {{ {
+              0: '正常',
+              1: '终止',
+              2: '观望'
+            }[scope.row.projectStatus] || '未知状态' }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="已发起立项申请"
+          align="center"
+          prop="approvalFlag"
+        >
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.approvalFlag === "1" ? "是" : "否" }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="已发起投决申请"
+          align="center"
+          prop="decisionFlag"
+        >
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.decisionFlag === "1" ? "是" : "否" }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="已发起尽调申请"
+          align="center"
+          prop="investigateFlag"
+        >
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.investigateFlag === "1" ? "是" : "否" }}
+            </div>
+          </template>
         </el-table-column>
       </el-table>
       <pagination
@@ -87,7 +154,7 @@
 </template>
 <script>
 import {
-  listTerminationList,
+  applicableListTermination,
 } from "@/api/project/termination/pool";
 import { mapGetters } from "vuex";
 export default {
@@ -109,6 +176,8 @@ export default {
         pageSize: 10,
         orderByColumn: "createTime",
         isAsc: "desc",
+        projectStatus:null,
+        projectName:null
       },
 
       // 选中数组
@@ -127,6 +196,14 @@ export default {
     this.getList();
   },
   methods: {
+    // 刷新项目列表的方法
+    refreshProjectList(isWatch) {
+      // 清空现有列表
+      this.poolList = [];
+      this.projectItemTotal=0;
+      // 重新请求接口获取最新数据
+      this.getList(isWatch);
+    },
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
     },
@@ -143,8 +220,13 @@ export default {
       this.ids = selection;
     },
     /** 查询项目池列表 */
-    getList() {
-      listTerminationList(this.projectQueryParams).then((response) => {
+    getList(isWatch) {
+      if(isWatch){
+        this.projectQueryParams.projectStatus=2;
+      }else {
+        this.projectQueryParams.projectStatus=0;
+      }
+      applicableListTermination(this.projectQueryParams).then((response) => {
         this.poolList = response.rows;
         this.projectItemTotal = response.total;
       });
@@ -177,11 +259,21 @@ export default {
             type: "error",
           });
         }
-      
+
     },
     cancel() {
       this.showProjectItem = false;
     },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.projectQueryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
   },
 };
-</script>
+</script>