Browse Source

1.优化机器设备报告生成

GouGengquan 7 months ago
parent
commit
13c02ff794

+ 6 - 1
src/api/assetsCalculate.js

@@ -26,7 +26,7 @@ export function generateEquipmentCalculate(params) {
 }
 
 // 根据id查询项目下所有测算表
-export function listAllByProjectId(params) {
+export function listAllCalculateByProjectId(params) {
     return request.get(`/assetsCalculate/listAllByProjectId/${params}`)
 }
 
@@ -43,4 +43,9 @@ export function getValuationBasisDate(params) {
 // 根据项目id获取测算信息下拉框数据
 export function getDropDownBoxData(params) {
     return request.get(`/assetsCalculate/getDropDownBoxData/${params}`)
+}
+
+// 根据测算表id获取生成机器设备融资项目报告引用的测算表信息
+export function getReferencesInfoById(params) {
+    return request.get(`/assetsCalculate/getReferencesInfoById/${params}`)
 }

+ 5 - 0
src/api/assetsReport.js

@@ -10,6 +10,11 @@ export function getUnFinishedReportProgress(params) {
     return request.get(`/assetsReport/getUnFinishedReportProgress/${params}`)
 }
 
+// 根据项目id查询所有报告信息
+export function listAllReportByProjectId(params) {
+    return request.get(`/assetsReport/listAllByProjectId/${params}`)
+}
+
 // 更新报告基础信息
 export function updateReportBaseInfo(params) {
     return request.put('/assetsReport/updateReportBaseInfo', params)

+ 51 - 7
src/views/assets/folder/child.vue

@@ -16,12 +16,12 @@
       </div>
     </div>
     <div class="example-list report-div">
-      <el-card class="report-item no-border" shadow="never" v-for="item in calculateList" @click="doCalculateBench(item)">
+      <el-card class="report-item no-border" shadow="never" v-for="item in calculateList" @click="goCalculateBench(item)">
         <div class="report-icon">
           <img src="../../../assets/icons/excel.png" style="width: 52px; height: 52px;" />
         </div>
         <div class="report-text">
-          <span class="report-text-type">{{ item.projectTypeName }}</span>
+          <span class="report-text-type">{{ item.projectTypeName }}测算表</span>
           <span> 一 </span>
           <span class="report-text-name">{{ item.calculateName }}
           </span>
@@ -47,6 +47,32 @@
           </el-icon>
         </div>
       </el-card>
+      <el-card class="report-item no-border" shadow="never" v-for="item in reportList" @click="goReportBench(item)">
+        <div class="report-icon">
+          <img src="../../../assets/icons/word.png" style="width: 52px; height: 52px;" />
+        </div>
+        <div class="report-text">
+          <span class="report-text-type">{{ item.projectTypeName }}报告</span>
+          <span> 一 </span>
+          <span class="report-text-name">{{ item.reportName }}
+          </span>
+          <div style="margin-top: 5px;">
+            <span>
+              <el-icon>
+                <Avatar />
+              </el-icon>
+              {{ item.principal }}</span>
+            <span style="float: right; color:darkgrey">
+              {{ item.createTime }}
+            </span>
+          </div>
+        </div>
+        <div class="report-button" @click.stop="downloadFile(item.docUrl, item.docName)">
+          <el-icon>
+            <Download />
+          </el-icon>
+        </div>
+      </el-card>
     </div>
   </div>
 </template>
@@ -54,8 +80,8 @@
 <script>
 import { mapStores } from 'pinia'
 import { assetsProjectInfo } from '@/stores/assetsProjectStore';
-import { getUnFinishedCalculateProgress, listAllByProjectId } from '@/api/assetsCalculate';
-import { getUnFinishedReportProgress } from '@/api/assetsReport';
+import { getUnFinishedCalculateProgress, listAllCalculateByProjectId } from '@/api/assetsCalculate';
+import { getUnFinishedReportProgress, listAllReportByProjectId } from '@/api/assetsReport';
 import fileUtil from '@/utils/file'
 
 export default {
@@ -65,7 +91,8 @@ export default {
       msg: 0,
       projectInfo: {},
       folderName: null,
-      calculateList: []
+      calculateList: [],
+      reportList: []
     }
   },
   computed: {
@@ -74,6 +101,7 @@ export default {
   created() {
     this.projectInfo = this.$route.query;
     this.getCalculateList();
+    this.getReportList();
   },
   methods: {
     createNewCalculate() {
@@ -120,7 +148,7 @@ export default {
       })
     },
     // 前往测算表详情
-    doCalculateBench(item) {
+    goCalculateBench(item) {
       this.projectStore.setCalculateProgress(item);
       // 根据不同进度跳转到不同步骤页面
       if (item.progress === 'IMPORT' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
@@ -129,14 +157,30 @@ export default {
         this.$router.push('/home/assets/workbench/calculate/eqptBaseInfo')
       }
     },
+    // 前往报告详情
+    goReportBench(item) {
+      this.projectStore.setReportProgress(item);
+      // 根据不同进度跳转到不同步骤页面
+      if (item.progress === 'BASE' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
+        this.$router.push('/home/assets/workbench/report/eqptBaseInfo')
+      }
+    },
     // 获取测算表list
     getCalculateList() {
-      listAllByProjectId(this.projectStore.projectInfo.id).then(res => {
+      listAllCalculateByProjectId(this.projectStore.projectInfo.id).then(res => {
         if (res.data) {
           this.calculateList = res.data;
         }
       })
     },
+    // 获取报告list
+    getReportList() {
+      listAllReportByProjectId(this.projectStore.projectInfo.id).then(res => {
+        if (res.data) {
+          this.reportList = res.data;
+        }
+      })
+    },
     // 下载文件
     downloadFile(docUrl, docName) {
       if (docUrl && docName) {

+ 3 - 3
src/views/assets/workbench/report/baseInfo.vue

@@ -54,9 +54,9 @@ export default {
                 calculateId: [
                     { required: true, message: '请选择关联的测算表', trigger: 'blur' }
                 ],
-                productionNo: [
-                    { required: true, message: '请输入报告号', trigger: 'blur' }
-                ]
+                // productionNo: [
+                //     { required: true, message: '请输入报告号', trigger: 'blur' }
+                // ]
             }
         }
     },

+ 38 - 16
src/views/assets/workbench/report/eqptBaseInfo.vue

@@ -68,7 +68,7 @@
                     <el-row :gutter="10">
                         <el-col :span="24">
                             <el-form-item label="前期准备阶段:" label-width="180" class="form-item" prop="preparationPhase">
-                                <el-date-picker v-model="eqptBaseInfo.preparationPhase" value-format="YYYY年MM月" type="month"
+                                <el-date-picker v-model="eqptBaseInfo.preparationPhase" value-format="YYYY年M月" type="month"
                                     clearable style="width: 100%;" />
                             </el-form-item>
                         </el-col>
@@ -76,7 +76,7 @@
                     <el-row :gutter="10">
                         <el-col :span="24">
                             <el-form-item label="评估基准日:" label-width="180" class="form-item" prop="valuationBasisDate">
-                                <el-date-picker v-model="eqptBaseInfo.valuationBasisDate" value-format="YYYY年MMDD日"
+                                <el-date-picker v-model="eqptBaseInfo.valuationBasisDate" value-format="YYYY年M月D日"
                                     type="date" clearable style="width: 100%;" />
                             </el-form-item>
                         </el-col>
@@ -84,7 +84,7 @@
                     <el-row :gutter="10">
                         <el-col :span="24">
                             <el-form-item label="现场调查日:" label-width="180" class="form-item" prop="fieldInvestigationDay">
-                                <el-date-picker v-model="eqptBaseInfo.fieldInvestigationDay" value-format="YYYY年MMDD日"
+                                <el-date-picker v-model="eqptBaseInfo.fieldInvestigationDay" value-format="YYYY年M月D日"
                                     type="date" clearable style="width: 100%;" />
                             </el-form-item>
                         </el-col>
@@ -108,8 +108,8 @@
                         <el-col :span="24">
                             <el-form-item label="是否包含增值税:" label-width="180" class="form-item" prop="hasVAT">
                                 <el-radio-group v-model="eqptBaseInfo.hasVAT">
-                                    <el-radio value="true">是</el-radio>
-                                    <el-radio value="false">否</el-radio>
+                                    <el-radio value="包含增值税">是</el-radio>
+                                    <el-radio value="不包含增值税">否</el-radio>
                                 </el-radio-group>
                             </el-form-item>
                         </el-col>
@@ -117,7 +117,7 @@
                     <el-row :gutter="10">
                         <el-col :span="24">
                             <el-form-item label="评估报告日:" label-width="180" class="form-item" prop="reportDate">
-                                <el-date-picker v-model="eqptBaseInfo.reportDate" value-format="YYYY年MMDD日" type="date"
+                                <el-date-picker v-model="eqptBaseInfo.reportDate" value-format="YYYY年M月D日" type="date"
                                     clearable style="width: 100%;" />
                             </el-form-item>
                         </el-col>
@@ -125,7 +125,7 @@
                     <el-row :gutter="10">
                         <el-col :span="24">
                             <el-form-item label="报告有效期:" label-width="180" class="form-item" prop="reportValidity">
-                                <el-date-picker v-model="eqptBaseInfo.reportValidity" value-format="YYYY年MMDD日"
+                                <el-date-picker v-model="eqptBaseInfo.reportValidity" value-format="YYYY年M月D日"
                                     :type="reportValidityDatePicker" range-separator="至" clearable style="width: 100%;" />
                             </el-form-item>
                         </el-col>
@@ -352,7 +352,7 @@
                 <el-row :gutter="10">
                     <el-col :span="24">
                         <el-form-item label="成立日期:" class="form-item" prop="consignorEstablishmentDate">
-                            <el-date-picker v-model="consignorInfo.consignorEstablishmentDate" value-format="YYYY年MMDD日"
+                            <el-date-picker v-model="consignorInfo.consignorEstablishmentDate" value-format="YYYY年M月D日"
                                 type="date" clearable style="width: 100%;" />
                         </el-form-item>
                     </el-col>
@@ -414,7 +414,7 @@
                 <el-row :gutter="10">
                     <el-col :span="24">
                         <el-form-item label="成立日期:" class="form-item" prop="ownerEstablishmentDate">
-                            <el-date-picker v-model="propertyOwnerInfo.ownerEstablishmentDate" value-format="YYYY年MMDD日"
+                            <el-date-picker v-model="propertyOwnerInfo.ownerEstablishmentDate" value-format="YYYY年M月D日"
                                 type="date" clearable style="width: 100%;" />
                         </el-form-item>
                     </el-col>
@@ -440,7 +440,8 @@
 <script>
 import { mapStores } from 'pinia'
 import { assetsProjectInfo } from '@/stores/assetsProjectStore';
-import { updateReportBaseInfo, getReportBaseInfo, generateEquipmentReport } from '@/api/assetsReport'
+import { updateReportBaseInfo, getReportBaseInfo, generateEquipmentReport } from '@/api/assetsReport';
+import { getReferencesInfoById } from '@/api/assetsCalculate';
 
 export default {
     data() {
@@ -576,6 +577,7 @@ export default {
         if (this.projectStore.reportProgress) {
             this.getReportBaseInfo();
         }
+        this.getReferencesInfoById();
     },
     computed: {
         ...mapStores(assetsProjectInfo),
@@ -617,7 +619,7 @@ export default {
                 if (valid) {
                     // 提交信息前将reportValidity的从数组改为字符串,并将对应的日期选择器类型改为date,不然日期选择器组件接收的数组会报错
                     this.reportValidityDatePicker = 'date';
-                    this.eqptBaseInfo.reportValidity = this.eqptBaseInfo.reportValidity.join('至');
+                    this.eqptBaseInfo.reportValidity = this.eqptBaseInfo.reportValidity.join('至');
                     let params = {};
                     params.reportId = this.projectStore.reportProgress.id;
                     params.baseInfo = JSON.stringify(this.eqptBaseInfo);
@@ -634,7 +636,7 @@ export default {
                             }
                         }
                         // 提交信息之后再改回来
-                        const parts = this.eqptBaseInfo.reportValidity.split('至');
+                        const parts = this.eqptBaseInfo.reportValidity.split('至');
                         this.eqptBaseInfo.reportValidity = parts.map(part => part.trim());
                         this.reportValidityDatePicker = 'daterange';
                     })
@@ -646,16 +648,34 @@ export default {
             getReportBaseInfo(this.projectStore.reportProgress.id).then(res => {
                 if (res.data) {
                     this.eqptBaseInfo = JSON.parse(res.data);
-                    const parts = this.eqptBaseInfo.reportValidity.split('至');
+                    const parts = this.eqptBaseInfo.reportValidity.split('至');
                     this.eqptBaseInfo.reportValidity = parts.map(part => part.trim());
                     // 返回不为空说明该步骤以前已经完成了,不需要更新本地缓存
                     this.needUpdateStore = false;
                 }
             })
         },
-        // 组装报告名字
-        reportNameChange() {
-
+        // 根据测算表id获取生成机器设备融资项目报告引用的测算表信息
+        getReferencesInfoById() {
+            getReferencesInfoById(this.projectStore.reportProgress.calculateId).then(res => {
+                if (res.data) {
+                    if (!this.eqptBaseInfo.assetsInfo.purchasePeriod) {
+                        this.eqptBaseInfo.assetsInfo.purchasePeriod = res.data.purchasePeriod;
+                        if (!this.eqptBaseInfo.assetsInfo.majorEquipmentAssets) {
+                            this.eqptBaseInfo.assetsInfo.majorEquipmentAssets = res.data.majorEquipmentAssets;
+                        }
+                        if (!this.eqptBaseInfo.assetsInfo.assetCount) {
+                            this.eqptBaseInfo.assetsInfo.assetCount = res.data.assetCount;
+                        }
+                        if (!this.eqptBaseInfo.assetsInfo.assetCount) {
+                            this.eqptBaseInfo.assetsInfo.assetCount = res.data.assetCount;
+                        }
+                        if (!this.eqptBaseInfo.valuationBasisDate) {
+                            this.eqptBaseInfo.valuationBasisDate = res.data.valuationBasisDate;
+                        }
+                    }
+                }
+            })
         },
         // 生成机器设备报告word文件
         generateEquipmentReport() {
@@ -666,6 +686,8 @@ export default {
                         message: res.message,
                         type: 'success'
                     })
+                    // 更新本地缓存的测算表进度
+                    this.projectStore.reportProgress.progress = 'FINISHED'
                 }
             })
         }