浏览代码

1.新增报告出库流程校验
2.四审节点表单新增修改文件
3.新增填写订单应收款

GouGengquan 1 年之前
父节点
当前提交
f84ec108b5

+ 8 - 0
src/api/modules/assets.js

@@ -121,5 +121,13 @@ export default {
     // 根据业务id与产品号集合获取每个产品是否有提交过的流程实例信息
     getInatanceCountList(params){
         return request.post(`assetsProduction/getInatanceCountList`, params)
+    },
+    // 根据资产产品id更新文件路由信息
+    updateProductionFileInfo(params){
+        return request.put(`assetsProduction/updateProductionFileInfo`, params)
+    },
+    // 根据产品号获取产品实收款
+    getProductionRealAmount(params){
+        return request.get(`assetsProduction/getProductionRealAmount/${params}`);
     }
 }

+ 1 - 0
src/components/workflowBoard.vue

@@ -157,6 +157,7 @@ export default {
       commit.doThirdCheck = this.nodeBusinessInfo.doThirdCheck;
       commit.doFourthCheck = this.nodeBusinessInfo.doFourthCheck;
       commit.ifFeedback = this.nodeBusinessInfo.ifFeedback;
+      commit.ifProductionFund = this.nodeBusinessInfo.ifProductionFund;
       let isOk = true
       this.$emit('workflowCommitVerify',{"commit":commit},val =>{
         if (!val.state){

+ 113 - 2
src/views/assets/myOrderList.vue

@@ -126,13 +126,40 @@
                         <span>{{ row.invoiceRealAmount }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" align="center" width="80" fixed="right">
+                <el-table-column label="操作" align="center" width="150" fixed="right">
                     <template slot-scope="{row}">
                         <el-button round type="primary" @click="orderDetail(row)">详情</el-button>
+                        <el-button type="text" size="small" @click="openShouldAmountDialog(row)">应收款</el-button>
                     </template>
                 </el-table-column>
             </parentTable>
         </y-page-list-layout>
+        <el-dialog :visible.sync="shouldAmountDialog" width="35%" center top="35vh" custom-class="doWarehouseClass"
+            @closed="cleanData">
+            <el-form ref="fund" :model="fund" style="margin-left:40px">
+                <el-row>
+                    <el-col :xs="24" :sm="12" :lg="24" :span="12">
+                        <el-form-item label="应收款金额(元):" prop="shouldAmount" label-width="160px"
+                            class="postInfo-container-item"
+                            :rules="{ required: true, message: '应收款金额不能为空', trigger: 'blur' }">
+                            <el-input-number :precision="2" :min="null" :value-on-clear="0"
+                                v-model.number="fund.shouldAmount" type="number" style="width:300px" class="filter-item" />
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :xs="24" :sm="12" :lg="24" :span="12">
+                        <el-form-item label="备注:" prop="remark" label-width="160px" class="postInfo-container-item">
+                            <el-input style="width:300px" type="textarea" v-model="fund.remark"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="shouldAmountDialog = false">取 消</el-button>
+                <el-button type="primary" @click="saveShouldAmount()">确 定</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -180,7 +207,21 @@ export default {
                     value: '0',
                     label: '未送达'
                 },
-            ]
+            ],
+            shouldAmountDialog: false,
+            fund: {
+                id: null,
+                businessType: null,
+                orderName: null,
+                orderId: null,
+                shouldAmount: null,
+                remark: null,
+                businessType: null,
+                businessId: null,
+                businessSubId: null,
+                productionFundId: null,
+                evaluateAmount: null
+            }
         }
     },
     created() {
@@ -230,6 +271,76 @@ export default {
                     back: '/assets/allList'
                 }
             })
+        },
+        openShouldAmountDialog(row) {
+            this.shouldAmountDialog = true;
+            this.fund.id = row.orderFundId;
+            this.fund.businessType = 'ASSET_BUSINESS';
+            this.fund.businessId = row.id;
+            this.fund.orderFundId = row.orderFundId;
+            this.fund.shouldAmount = row.shouldAmount;
+            this.fund.remark = row.remark;
+            this.fund.orderId = row.orderId;
+            this.fund.orderName = row.name;
+        },
+        saveShouldAmount() {
+            this.$refs.fund.validate(valid => {
+                if (valid) {
+                    if (this.fund.orderFundId) {
+                        this.$api.orderFund.edit(this.fund).then(res => {
+                            if (res.code === 200 && res.data) {
+                                this.$notify({
+                                    title: '成功',
+                                    message: '订单应收款已完善',
+                                    type: 'success',
+                                    duration: 1000
+                                });
+                                this.getList();
+                                this.shouldAmountDialog = false;
+                            } else {
+                                this.$notify({
+                                    title: '失败',
+                                    message: '订单应收款保存错误',
+                                    type: 'error',
+                                    duration: 1000
+                                });
+                            }
+                        })
+                    } else {
+                        this.$api.orderFund.add(this.fund).then(res => {
+                            if (res.code === 200 && res.data) {
+                                this.$notify({
+                                    title: '成功',
+                                    message: '订单应收款已新增',
+                                    type: 'success',
+                                    duration: 1000
+                                });
+                                this.getList();
+                                this.shouldAmountDialog = false;
+                            } else {
+                                this.$notify({
+                                    title: '失败',
+                                    message: '订单应收款保存错误',
+                                    type: 'error',
+                                    duration: 1000
+                                });
+                            }
+                        })
+                    }
+                }
+            })
+        },
+        cleanData() {
+            this.fund.shouldAmount = null;
+            this.fund.id = null;
+            this.fund.businessType = null;
+            this.fund.remark = null;
+            this.fund.businessType = null;
+            this.fund.businessId = null;
+            this.fund.businessSubId = null;
+            this.fund.productionFundId = null;
+            this.fund.remark = null;
+            this.fund.evaluateAmount = null
         }
     }
 }

+ 69 - 10
src/views/assets/orderDetail.vue

@@ -577,9 +577,9 @@
                     @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
                     四审报告
                   </el-button>
-                  <el-button v-if="currentNode.nodeCode === 'STATEMENT_IN' || currentNode.nodeCode === 'REPORT_IN'"
+                  <el-button v-if="(currentNode.nodeCode === 'STATEMENT_IN' || currentNode.nodeCode === 'REPORT_IN') && scope.row.repertoryState === null"
                     type="text" size="small" @click="openWareHouseDialog(scope.row);">产品入库</el-button>
-                  <el-button v-if="currentNode.nodeCode === 'STATEMENT_OUT' || currentNode.nodeCode === 'REPORT_OUT'"
+                  <el-button v-if="(currentNode.nodeCode === 'STATEMENT_OUT' || currentNode.nodeCode === 'REPORT_OUT') && scope.row.repertoryState === false"
                     type="text" size="small" @click="openWareHouseDialog(scope.row);">产品出库</el-button>
                 </template>
               </el-table-column>
@@ -1057,7 +1057,7 @@
         </div>
       </el-form>
     </el-dialog>
-    <el-dialog :visible.sync="productionCheckDialogVisible">
+    <el-dialog :visible.sync="productionCheckDialogVisible" @close="resetProductionForm">
       <el-form ref="productionPerformanceForm" :model="productionPerformanceForm">
         <div class="createMajor-main-container">
           <div class="postInfo-container">
@@ -1100,6 +1100,28 @@
                 </el-form-item>
               </el-col>
             </el-row>
+            <div v-if="currentNode.nodeCode === 'RECHECK_REPORT' || currentNode.nodeCode === 'FOURTH_CHECK_REPORT'">
+              <el-row class="row-style">
+                <el-col>
+                  <el-form-item label="特殊情况说明:" prop="comment" label-width="150px" class="postInfo-container-item">
+                    <el-input v-model="assetsProductionForm.comment" :autosize="{ minRows: 4, maxRows: 4 }"
+                      class="filter-item" type="textarea" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row class="row-style">
+                <el-col>
+                  <el-form-item :rules="{ required: true, message: '请上传附件资料', trigger: 'changes' }" prop="filePath"
+                    label="资料附件:" label-width="120px" class="postInfo-container-item">
+                    <el-upload action="/api/upload" :limit="3" :on-success="changeresProduction" :on-exceed="handleExceed"
+                      :on-preview="handleAttachmentPreview" :before-remove="beforeRemovePro" :file-list="fileList">
+                      <el-button plain type="info" round style="width: 100%">上传附件<i
+                          class="el-icon-upload el-icon--right"></i></el-button>
+                    </el-upload>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
             <el-row>
               <el-col>
                 <el-button style="width:100%;" @click="saveQuality()">提交</el-button>
@@ -1225,7 +1247,8 @@ export default {
         currentNodeInstanceCode: null,
         ifCheckTask: true,
         ifPay: null,
-        doFourthCheck: false
+        doFourthCheck: false,
+        ifProductionFund: false
       },
       currentNode: {
         flowId: null,
@@ -1618,7 +1641,6 @@ export default {
     this.getProductionList();
     this.nodeBusinessInfo.reportNos.push(this.pageParams.row.statementNo);
   },
-
   methods: {
     // 根据业务id获取资产业务详情
     getAssetsDetailById(id) {
@@ -1913,6 +1935,10 @@ export default {
               this.nodeBusinessInfo.currentNodePermission.skippable = res.data.skippable;
               this.nodeBusinessInfo.currentNodePermission.terminable = res.data.terminable;
               this.nodeBusinessInfo.businessId = this.pageParams.row.assetsId;
+              
+              if(this.currentNode.nodeCode === 'REPORT_IN'){
+                this.getProductionRealAmount(this.pageParams.row.reportNo);
+              }
             }
           }
         })
@@ -2605,6 +2631,13 @@ export default {
     },
     // 根据业务类型,产品id及checkLoop获取质检信息
     openProductionCheckDialog() {
+      this.$api.assets.getAssetsProductionDetail(this.productionPerformanceForm.productionId).then(res => {
+        if (res.code == 200) {
+          this.assetsProductionForm = res.data;
+          this.assetsProductionForm.filePath = JSON.parse(res.data.filePath);
+          this.fileList = this.assetsProductionForm.filePath;
+        }
+      })
       const curNode = this.currentNode.nodeCode;
       if (!this.isCheckValue && !(curNode === 'REVIEW_STATEMENT' || curNode === 'CHECK_REPORT')) {
         this.productionCheckDialogVisible = true;
@@ -2653,6 +2686,7 @@ export default {
                 type: 'success',
                 duration: 3000
               });
+              this.updateProductionFileInfo();
               this.productionCheckDialogVisible = false;
             }
           })
@@ -2665,6 +2699,7 @@ export default {
                 type: 'success',
                 duration: 3000
               });
+              this.updateProductionFileInfo();
               this.productionCheckDialogVisible = false;
             }
           })
@@ -2678,6 +2713,20 @@ export default {
         });
       }
     },
+    // 根据资产产品id更新文件路由信息
+    updateProductionFileInfo() {
+      this.assetsProductionForm.filePath = JSON.stringify(this.assetsProductionForm.filePath);
+      this.$api.assets.updateProductionFileInfo(this.assetsProductionForm).then(res => {
+        if (res.code === 200 && res.data) {
+          this.$notify({
+            title: '成功',
+            message: '产品附件保存成功',
+            type: 'success',
+            duration: 3000
+          });
+        }
+      })
+    },
     // 打开产品出入库弹窗
     openWareHouseDialog(row) {
       this.warehouseDialog = true;
@@ -2691,6 +2740,7 @@ export default {
       this.wareHouseProductionType = null;
       this.wareHouseproductionId = null;
     },
+    // 产品出入库
     doWareHouse() {
       let productionNo = this.scanEntryData
       let wareHoaseDto = new Object();
@@ -2728,20 +2778,29 @@ export default {
       })
     },
     // 判断流程是否进行四审
-    flowDoFourthCheck(){
-      if(this.currentNode.nodeCode == 'RECHECK_REPORT'){
+    flowDoFourthCheck() {
+      if (this.currentNode.nodeCode == 'RECHECK_REPORT') {
         // 判断评估值是否超过8000万
         let isSubstantialAssets = this.assetsEvaluationTarget.reduce((sum, obj) => { return sum + obj.estimatedValue; }, 0) > 8000;
         // 获取是否有评估目的为搬迁、司法涉讼的评估对象
-        let isLawsuit = this.assetsEvaluationTarget.some(obj => obj.purposeName === '搬迁' ||  obj.purposeName === '资产涉讼' );
+        let isLawsuit = this.assetsEvaluationTarget.some(obj => obj.purposeName === '搬迁' || obj.purposeName === '资产涉讼');
         // 获取是否证券项目
         let isSecurity = this.assetsForm.security;
         // 是否证券项目,或是否评估目的搬迁、诉讼,或是否价值大于8000万
-        if(isSecurity || isLawsuit || isSubstantialAssets){
+        if (isSecurity || isLawsuit || isSubstantialAssets) {
           this.nodeBusinessInfo.doFourthCheck = true;
         }
-        console.log(isSubstantialAssets,isLawsuit,isSecurity,this.nodeBusinessInfo.doFourthCheck);
       }
+    },
+    // 根据产品号获取产品实收款
+    getProductionRealAmount(productionNo) {
+      this.$api.assets.getProductionRealAmount(productionNo).then(res => {
+        if (res.code === 200 && res.data !== null) {
+          this.nodeBusinessInfo.ifProductionFund = true;
+        } else {
+          this.nodeBusinessInfo.ifProductionFund = false;
+        }
+      })
     }
   }
 

+ 1 - 0
src/views/set/workflow/detail.vue

@@ -154,6 +154,7 @@
               <el-option key="6" label="客户类型校验(个贷)" value="CHECK_PERSONAL_CLIENT_TYPE"/>
               <el-option key="7" label="出具产品类型校验(资产)" value="CHECK_ASSET_PRODUCTION_TYPE"/>
               <el-option key="8" label="报告四审校验(资产)" value="CHECK_ASSET_FOURTH_CHECK_REPORT"/>
+              <el-option key="9" label="产品认领实收款校验(资产)" value="CHECK_ASSET_ORDER_FUND"/>
             </el-select>
         </el-form-item>
         <el-form-item label="节点任务:" prop="tasks">