Bläddra i källkod

1.新增页面大中型错误类型数量统计

GouGengquan 10 månader sedan
förälder
incheckning
9e1c14a120

+ 5 - 1
src/api/modules/statistical.js

@@ -90,9 +90,13 @@ export default {
     getMajorEfficiencyDetailVO(params){
         return request.get(`major/statisticalStatement/evaluate/getMajorEvaEffDetailVO`, { params: params })
     },
-    // 大众新根据部门id获取部门绩效扣分
+    // 大中型根据部门id获取部门绩效扣分
     getMajorPerformanceDeductionVOByDepId(params){
         return request.get(`major/statisticalStatement/depId/getMajorPerformanceDeductionVO`, { params: params })
     },
+    // 大中型查询每种错误类型的数量
+    getMajorErrorTypeCountVO(params){
+        return request.get(`major/statisticalStatement/errorType/getMajorErrorTypeCountVO`, { params: params })
+    },
 
 }

+ 4 - 2
src/router/urlMap.js

@@ -143,7 +143,8 @@ import _views_statistical_personal_evaluate_efficiency from '@/views/statistical
 import _views_statistical_major_ledger from '@/views/statistical/major/ledgerList'
 import _views_statistical_major_performance_deduction from '@/views/statistical/major/performanceDeduction'
 import _views_statistical_major_evaluate_efficiency from '@/views/statistical/major/evaluateEfficiency'
-import _views_statistical_major_evaluate_efficiency_depInternal from '@/views/statistical/major/performanceDeductionDepInternal'
+import _views_statistical_major_performance_deduction_depInternal from '@/views/statistical/major/performanceDeductionDepInternal'
+import _views_statistical_major_performance_deduction_errorType from '@/views/statistical/major/performanceDeductionErrorType'
 
 export default {
   _views_set_menu,
@@ -276,6 +277,7 @@ export default {
   _views_statistical_major_ledger,
   _views_statistical_major_performance_deduction,
   _views_statistical_major_evaluate_efficiency,
-  _views_statistical_major_evaluate_efficiency_depInternal
+  _views_statistical_major_performance_deduction_depInternal,
+  _views_statistical_major_performance_deduction_errorType
 
 }

+ 1 - 1
src/views/statistical/major/performanceDeductionDepInternal.vue

@@ -211,7 +211,7 @@ import Breadcrumb from '@/components/Breadcrumb'
 import YPageListLayout from '@/components/YPageListLayout'
 
 export default {
-    name: 'majorPerformanceDeduction',
+    name: 'majorPerformanceDeductionDepInternal',
     components: {
         Breadcrumb,
         YPageListLayout

+ 412 - 0
src/views/statistical/major/performanceDeductionErrorType.vue

@@ -0,0 +1,412 @@
+<template>
+    <div class="app-container organization-index">
+        <div class="title-container">
+            <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
+        </div>
+        <div>
+            <div style="width: 100%; height: 50px;">
+                <el-date-picker style="margin-right: 20px;float: left;" v-model="selectDate" type="daterange"
+                    :picker-options="pickerOptions" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" range-separator="至"
+                    start-placeholder="开始日期" end-placeholder="结束日期" align="right">
+                </el-date-picker>
+                <el-select v-model="listQuery.departmentId" filterable placeholder="接单部门"
+                    style=" width: 200px;margin-left: 10px;float: left;">
+                    <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
+                </el-select>
+                <el-input v-model="listQuery.userName" placeholder="姓名" clearable
+                    style="margin-left: 20px;width: 200px;float: left;">
+                </el-input>
+                <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList()"
+                    round>搜索
+                </el-button>
+                <el-button class="filter-item" round type="success" @click="resetParams()">重置
+                </el-button>
+                <el-button class="filter-item" round type="info" @click="exportMajorPerformanceDeductionVO()"
+                    :disabled="exportStatus">导出
+                </el-button>
+            </div>
+            <el-table :data="performanceDeduction" fit stripe highlight-current-row
+                :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 100%; float: right;
+                      border-left: 1px solid #ebeced;
+                      border-right: 1px solid #ebeced;
+                      color: #333333; font-size: 14px;">
+                <el-table-column label="评估人员" width="150">
+                    <template slot-scope="{row}">
+                        <span>{{ row.userName }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="委托书界定事项和报告描述不符" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount01 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount01
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="委托方函重要数据出错" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount02 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount02
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="假设限制条件错漏" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount03 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount03
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="地价定义表述有误或不完整" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount04 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount04
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="大小写有误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount05 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount05
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="面积有误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount06 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount06
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="报告章节缺漏" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount07 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount07
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="技术路线错误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount08 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount08
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="测算参数取值错误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount09 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount09
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="实景图方位图错误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount10 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount10
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="报告出具日期错误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount11 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount11
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="报告有效期错误" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount12 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount12
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="估价依据适用不当" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount13 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount13
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="委托人名称出错" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount14 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount14
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="价值时点出错" width="150">
+                    <template slot-scope="{row}">
+                        <span :style="{ color: row.errorTypeCount15 > 0 ? 'red' : 'black' }">{{ row.errorTypeCount15
+                        }}</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+        <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="70%"
+            @open="getMajorPerformanceDeductionDetailVO()">
+            <y-page-list-layout :get-page-list="getMajorPerformanceDeductionDetailVO" :page-list="pageData"
+                :page-para="listQueryDetail">
+                <template slot="left">
+                    <el-button class="filter-item" round type="info" @click="exportPerformanceDeductionDetail()">导出
+                    </el-button>
+                </template>
+                <parentTable ref="table" :data="pageData.records" slot="table" style="width: 100%;" :isBoard=800>
+                    <el-table-column label="项目编号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.orderId }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否金融" align="center">
+                        <template slot-scope="{row}">
+                            <span v-if="row.financial">金融</span>
+                            <span v-else>非金融</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目名称" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.projectName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="银行/单位" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.customerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产品类型" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.productionType }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产品号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.productionNo }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目负责人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.principalName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="参与人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.members }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估金额(万元)" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.evaluateAmount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估目的" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.evaluateAim }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.checkerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="错误个数" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.mistakeCount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="加减分" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.mistakeScore }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分时间" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.checkTime }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分原因" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reason }}</span>
+                        </template>
+                    </el-table-column>
+                </parentTable>
+            </y-page-list-layout>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import Breadcrumb from '@/components/Breadcrumb'
+import YPageListLayout from '@/components/YPageListLayout'
+
+export default {
+    name: 'majorPerformanceDeductionErrorType',
+    components: {
+        Breadcrumb,
+        YPageListLayout
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            dialogTitle: null,
+            listLoading: false,
+            // 时间
+            selectDate: [],
+            listQuery: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null
+            },
+            listQueryDetail: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 审核轮次
+                checkLoop: null,
+                // 错误类型(normal、hard、fatal)
+                mistakeType: null,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null,
+                principalId: null
+            },
+            pickerOptions: {
+                shortcuts: [{
+                    text: '最近一周',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近一个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近三个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }]
+            },
+            exportStatus: true,
+            performanceDeduction: [],
+            pageData: { records: [] },
+            // 接单部门
+            allotDepartment: []
+        }
+    },
+    created() {
+        this.selectDate.push(this.getDefaultStartDate());
+        this.selectDate.push(this.getDefaultEndDate());
+        this.getAllotDepartment();
+        this.getMajorErrorTypeCountVO();
+    },
+    methods: {
+        getDefaultStartDate() {
+            const currentDate = new Date();
+            const currentYear = currentDate.getFullYear();
+            var currentMonth = String(currentDate.getMonth()).padStart(2, "0");
+            return currentYear + '-' + currentMonth + '-' + '23'
+        },
+        getDefaultEndDate() {
+            const currentDate = new Date();
+            const currentYear = currentDate.getFullYear();
+            var currentMonth = String(currentDate.getMonth() + 1).padStart(2, "0");
+            return currentYear + '-' + currentMonth + '-' + '22'
+        },
+        // 条件查询
+        searchList() {
+            this.getMajorErrorTypeCountVO()
+        },
+        // 重置搜索条件
+        resetParams() {
+            this.exportStatus = true;
+            this.listQuery = {
+                // 重置分页
+                page: 1,
+                size: 10,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null
+            };
+            this.selectDate = [];
+            this.selectDate.push(this.getDefaultStartDate());
+            this.selectDate.push(this.getDefaultEndDate());
+            this.getMajorErrorTypeCountVO();
+        },
+        getMajorErrorTypeCountVO() {
+            if (this.selectDate) {
+                this.listQuery.startTime = this.selectDate[0] + ' 00:00:00';
+                this.listQuery.endTime = this.selectDate[1] + ' 23:59:59';
+            }
+            this.$api.statistical.getMajorErrorTypeCountVO(this.listQuery).then(res => {
+                if (res.code === 200) {
+                    this.performanceDeduction = res.data;
+                    if (this.listQuery.startTime !== null && this.listQuery.endTime !== null && res.data.length > 0) {
+                        this.exportStatus = false;
+                    } else {
+                        this.exportStatus = true;
+                    }
+                }
+            })
+        },
+        exportMajorPerformanceDeductionVO() {
+            this.$utils.exportUtil(
+                "major/statisticalStatement/errorType/getMajorErrorTypeCountVO/export", this.listQuery,
+                "导出"
+            );
+        },
+        setListQueryParms(checkLoop, mistakeType, departmentId, startTime, endTime, userId) {
+            this.dialogVisible = true;
+            this.listQueryDetail.page = 1;
+            this.listQueryDetail.size = 10;
+            this.listQueryDetail.current = 1;
+            this.listQueryDetail.checkLoop = checkLoop;
+            this.listQueryDetail.mistakeType = mistakeType;
+            this.listQueryDetail.departmentId = departmentId;
+            this.listQueryDetail.startTime = startTime;
+            this.listQueryDetail.endTime = endTime;
+            if (userId) {
+                this.listQueryDetail.principalId = userId;
+            } else {
+                this.listQueryDetail.principalId = null;
+            }
+            // 设置dialog标题
+            if (mistakeType === 'normal') {
+                this.dialogTitle = checkLoop + ":一般错误列表";
+            } else if (mistakeType === 'hard') {
+                this.dialogTitle = checkLoop + ":较大错误列表";
+            } else if (mistakeType === 'fatal') {
+                this.dialogTitle = checkLoop + ":重大错误列表";
+            } else {
+                this.dialogTitle = "-";
+            }
+        },
+        // 查询错误详情列表
+        getMajorPerformanceDeductionDetailVO() {
+            this.$api.statistical.getMajorPerformanceDeductionDetailVO(this.listQueryDetail).then(res => {
+                if (res.code === 200) {
+                    this.pageData = res.data;
+                }
+            })
+        },
+        // 错误详情列表导出
+        exportPerformanceDeductionDetail() {
+            this.$utils.exportUtil(
+                "major/statisticalStatement/getMajorPerformanceDeductionDetailVO/export", this.listQueryDetail,
+                "导出"
+            );
+        },
+        // 获取部门下拉列表
+        getAllotDepartment() {
+            this.$api.department.allot('MAJOR_BUSINESS').then(res => {
+                if (res.code === 200) {
+                    this.allotDepartment = res.data;
+                }
+            })
+        }
+    }
+}
+</script>