Переглянути джерело

1.机器设备-进口设备根据不同成交方式采用不同公式
2.机器设备作价新增批量赋值与批量保存等功能

GouGengquan 7 місяців тому
батько
коміт
8e4dde2211

+ 15 - 0
src/api/assetsCalculateEqptData.js

@@ -15,6 +15,11 @@ export function updateData(params) {
     return request.put('/assetsCalculateEqptData/update', params)
 }
 
+// 批量更新机器设备数据
+export function updateBatch(params) {
+    return request.put('/assetsCalculateEqptData/updateBatch', params)
+}
+
 // 分页查询进口设备信息
 export function getImpDataPage(params) {
     return request.get('/assetsCalculateEqptData/getImpDataPage', { params: params })
@@ -25,6 +30,11 @@ export function updateImpData(params) {
     return request.put('/assetsCalculateEqptData/updateImpData', params)
 }
 
+// 批量更新机器设备进口设备数据
+export function updateBatchImpData(params) {
+    return request.put('/assetsCalculateEqptData/updateBatchImpData', params)
+}
+
 // 分页查询非标设备信息
 export function getNonSDataPage(params) {
     return request.get('/assetsCalculateEqptData/getNonSDataPage', { params: params })
@@ -35,6 +45,11 @@ export function updateNonSData(params) {
     return request.put('/assetsCalculateEqptData/updateNonSData', params)
 }
 
+// 批量更新机器设备非标设备数据
+export function updateBatchNonSData(params) {
+    return request.put('/assetsCalculateEqptData/updateBatchNonSData', params)
+}
+
 // 获取机器设备作价table的筛选条件
 export function getEqptTableFilterVO(params) {
     return request.get('/assetsCalculateEqptData/getEqptTableFilterVO', { params: params })

+ 167 - 22
src/views/assets/workbench/calculate/importInfo.vue

@@ -29,6 +29,10 @@
             <el-button type="danger" @click="generateEquipmentCalculate()">生成测算表</el-button>
         </div>
         <div id="evaluateDiv" class="evaluateDiv">
+            <el-button v-if="activeName === 'all'" type="primary" style="float:left" @click="saveBatch()">批量保存</el-button>
+            <el-button v-if="activeName === 'imported'" type="primary" style="float:left" @click="saveBatchImp()">批量保存</el-button>
+            <el-button v-if="activeName === 'nonStandard'" type="primary" style="float:left" @click="saveBatchNonS()">批量保存</el-button>
+            <el-button type="primary" style="float:left" @click="batchSetDialog = true">批量赋值</el-button>
             <div class="search">
                 <el-input type="number" v-model="eqptDataQuery.sortId" placeholder="请输入序号" clearable
                     style="width: 200px;" />
@@ -212,7 +216,8 @@
                     <template #default="{ row }">
                         <el-form-item prop="usageSituation">
                             <el-form :model="row" @submit.native.prevent>
-                                <el-select v-model="row.usageSituation" placeholder="使用情况"  filterable allow-create style="width:150px">
+                                <el-select v-model="row.usageSituation" placeholder="使用情况" filterable allow-create
+                                    style="width:150px">
                                     <el-option label="在用" value="在用"></el-option>
                                     <el-option label="闲置" value="闲置"></el-option>
                                     <el-option label="无实物" value="无实物"></el-option>
@@ -702,7 +707,7 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="bookOriginalValue" label="账面原值" width="150">
+                <el-table-column prop="bookOriginalValue" label="账面原值(元)" width="150">
                     <template #default="{ row }">
                         <el-form-item prop="bookOriginalValue">
                             <el-form :model="row" @submit.native.prevent>
@@ -742,7 +747,11 @@
                     <template #default="{ row }">
                         <el-form-item prop="transactionMethod">
                             <el-form :model="row" @submit.native.prevent>
-                                <el-input v-model="row.transactionMethod" placeholder="成交方式" />
+                                <el-select v-model="row.transactionMethod" placeholder="成交方式" clearable
+                                    style="width: 130px;">
+                                    <el-option label="CIF" value="CIF"></el-option>
+                                    <el-option label="FOB" value="FOB"></el-option>
+                                </el-select>
                             </el-form>
                         </el-form-item>
                     </template>
@@ -794,7 +803,8 @@
                 </el-table-column>
                 <el-table-column prop="purchasePrice" label="购置价(CIF到岸价)" width="150">
                     <template #default="{ row }">
-                        <span>{{ row.purchasePrice = (row.ppi * row.contractAmount).toFixed(2) }}</span>
+                        <span>{{ row.purchasePrice = (row.transactionMethod === 'FOB' ? (row.ppi * (1 + 0.03 + 0.004) *
+                            row.contractAmount).toFixed(2) : (row.ppi * row.contractAmount).toFixed(2)) }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="(CIF到岸价)折人民币">
@@ -839,7 +849,7 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="tariff" label="关税" width="150">
+                <el-table-column prop="tariff" label="关税(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.tariff = (row.CIFLandedPrice * (row.tariffRate / 100)).toFixed(2) }}</span>
                     </template>
@@ -853,14 +863,14 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="importVAT" label="进口增值税" width="150">
+                <el-table-column prop="importVAT" label="进口增值税(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.importVAT = ((row.CIFLandedPrice * 1 + row.tariff * 1) * (row.importVATRate /
                             100)).toFixed(2)
                         }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="eqptPrice" label="设备价格" width="150">
+                <el-table-column prop="eqptPrice" label="设备价格(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.eqptPrice = (row.CIFLandedPrice * 1 + row.tariff * 1 + row.importVAT * 1).toFixed(2)
                         }}</span>
@@ -875,7 +885,7 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="bankCharges" label="银行财务费" width="150">
+                <el-table-column prop="bankCharges" label="银行财务费(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.bankCharges = (row.CIFLandedPrice * (row.bankChargesRate / 100)).toFixed(2) }}</span>
                     </template>
@@ -889,19 +899,19 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="foreignTransaction" label="外贸手续费" width="150">
+                <el-table-column prop="foreignTransaction" label="外贸手续费(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.foreignTransaction = (row.CIFLandedPrice * (row.foreignTransactionRate /
                             100)).toFixed(2)
                         }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="totalFees" label="费用小计" width="150">
+                <el-table-column prop="totalFees" label="费用小计(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.totalFees = (row.bankCharges * 1 + row.foreignTransaction * 1).toFixed(2) }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="originalPrice" label="设备原价" width="150">
+                <el-table-column prop="originalPrice" label="设备原价(元)" width="150">
                     <template #default="{ row }">
                         <span>{{ row.originalPrice = (row.eqptPrice * 1 + row.totalFees * 1).toFixed(2) }}</span>
                     </template>
@@ -1096,7 +1106,7 @@
                     </template>
                 </el-table-column>
                 <el-table-column label="账面价值">
-                    <el-table-column prop="bookOriginalValue" label="原值" width="150">
+                    <el-table-column prop="bookOriginalValue" label="原值(元)" width="150">
                         <template #default="{ row }">
                             <el-form-item prop="bookOriginalValue">
                                 <el-form :model="row" @submit.native.prevent>
@@ -1105,7 +1115,7 @@
                             </el-form-item>
                         </template>
                     </el-table-column>
-                    <el-table-column prop="bookNetValue" label="净值" width="150">
+                    <el-table-column prop="bookNetValue" label="净值(元)" width="150">
                         <template #default="{ row }">
                             <el-form-item prop="bookNetValue">
                                 <el-form :model="row" @submit.native.prevent>
@@ -1216,11 +1226,6 @@
                 </el-table-column>
                 <el-table-column prop="mainMaterialCost" label="主材费/设备报价(含税不含运费不含安装调试费)" width="250">
                     <template #default="{ row }">
-                        <!-- <el-form-item prop="mainMaterialCost">
-                            <el-form :model="row" @submit.native.prevent>
-                                <el-input v-model="row.mainMaterialCost" />
-                            </el-form>
-                        </el-form-item> -->
                         <span>{{ row.mainMaterialCost = isNaN((row.material1Quantity / (row.material1UseRatio / 100) *
                             row.material1Price + row.material2Quantity / (row.material2UseRatio / 100) *
                             row.material2Price).toFixed(0)) ? 0 : (row.material1Quantity / (row.material1UseRatio / 100) *
@@ -1237,7 +1242,7 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="mainPurchasedPartsCost" label="主要外购件费" width="150">
+                <el-table-column prop="mainPurchasedPartsCost" label="主要外购件费(元)" width="170">
                     <template #default="{ row }">
                         <el-form-item prop="mainPurchasedPartsCost">
                             <el-form :model="row" @submit.native.prevent>
@@ -1282,7 +1287,7 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="nonsEqptValue" label="非标设备估值" width="150">
+                <el-table-column prop="nonsEqptValue" label="非标设备估值(元)" width="170">
                     <template #default="{ row }">
                         <span>{{ row.nonsEqptValue = (row.mainMaterialCostRate == null ? 0 : isNaN(((row.mainMaterialCost /
                             (row.mainMaterialCostRate / 100) +
@@ -1323,6 +1328,83 @@
             <el-tab-pane label="非标设备测算" name="nonStandard">
             </el-tab-pane>
         </el-tabs>
+        <el-dialog v-model="batchSetDialog" width="500">
+            <el-select v-if="activeName === 'all'" v-model="batchAssignment.column" placeholder="选择列" filterable clearable
+                style="margin-bottom:10px">
+                <el-option label="序号" value="sortId"></el-option>
+                <el-option label="设备名称" value="equipmentName"></el-option>
+                <el-option label="生产厂家" value="manufacturer"></el-option>
+                <el-option label="型号规格" value="model"></el-option>
+                <el-option label="购买日期" value="purchaseDate"></el-option>
+                <el-option label="启用日期" value="activationDate"></el-option>
+                <el-option label="存放地点" value="storageLocation"></el-option>
+                <el-option label="使用情况" value="usageSituation"></el-option>
+                <el-option label="数量" value="quantity"></el-option>
+                <el-option label="计量单位" value="unitOfMeasurement"></el-option>
+                <el-option label="账面原值" value="bookOriginalValue"></el-option>
+                <el-option label="账面净值" value="bookNetValue"></el-option>
+                <el-option label="合同/发票含税单价" value="taxedUnitPrice"></el-option>
+                <el-option label="购置时税率" value="taxRate"></el-option>
+                <el-option label="备注" value="remark"></el-option>
+                <el-option label="经济使用年数" value="economicServiceLife"></el-option>
+                <el-option label="直接观察成新率" value="directObservationDepreciationRate"></el-option>
+                <el-option label="设备类型" value="equipmentType"></el-option>
+                <el-option label="作价方法" value="valuationMethod"></el-option>
+                <el-option label="询价依据" value="inquiryBasis"></el-option>
+                <el-option label="询价地点" value="inquiryLocation"></el-option>
+                <el-option label="询价单价" value="price"></el-option>
+                <el-option label="运杂费率" value="freightAndMiscellaneousFeeRate"></el-option>
+                <el-option label="基础费率" value="baseRate"></el-option>
+                <el-option label="安装费率" value="installationRate"></el-option>
+            </el-select>
+            <el-select v-if="activeName === 'imported'" v-model="batchAssignment.column" placeholder="选择列" filterable
+                clearable style="margin-bottom:10px">
+                <el-option label="商品编号" value="productCode"></el-option>
+                <el-option label="合同结算币种" value="currency"></el-option>
+                <el-option label="生产国/进口国" value="address"></el-option>
+                <el-option label="成交方式" value="transactionMethod"></el-option>
+                <el-option label="合同金额" value="contractAmount"></el-option>
+                <el-option label="合同签订日期" value="contractSigningDate"></el-option>
+                <el-option label="到岸港口" value="destinationPort"></el-option>
+                <el-option label="价格指数" value="ppi"></el-option>
+                <el-option label="取价依据" value="pricingBasis"></el-option>
+                <el-option label="基准日汇率中间价" value="centralParityRate"></el-option>
+                <el-option label="关税税率" value="tariffRate"></el-option>
+                <el-option label="关税税率查询截图" value="tariffRatePicture"></el-option>
+                <el-option label="进口增值税率" value="importVATRate"></el-option>
+                <el-option label="银行财务费率" value="bankChargesRate"></el-option>
+                <el-option label="外贸手续费率" value="foreignTransactionRate"></el-option>
+            </el-select>
+            <el-select v-if="activeName === 'nonStandard'" v-model="batchAssignment.column" placeholder="选择列" filterable
+                clearable style="margin-bottom:10px">
+                <el-option label="设备编号" value="eqptCode"></el-option>
+                <el-option label="所属系统/生产线名称" value="affiliatedSystem"></el-option>
+                <el-option label="主材1" value="material1"></el-option>
+                <el-option label="主材1用量" value="material1Quantity"></el-option>
+                <el-option label="主材1利用率%" value="material1UseRatio"></el-option>
+                <el-option label="主材1单价(元/吨)" value="material1Price"></el-option>
+                <el-option label="主材2" value="material2"></el-option>
+                <el-option label="主材2用量" value="material2Quantity"></el-option>
+                <el-option label="主材2利用率%" value="material2UseRatio"></el-option>
+                <el-option label="主材2单价(元/方)" value="material2Price"></el-option>
+                <el-option label="不含主要外购件费的成本主材费率" value="mainMaterialCostRate"></el-option>
+                <el-option label="主要外购件费" value="mainPurchasedPartsCost"></el-option>
+                <el-option label="成本利润率" value="costProfitRatio"></el-option>
+                <el-option label="销售税金率" value="salesTaxRate"></el-option>
+                <el-option label="非标准设备设计费率" value="designFeeRate"></el-option>
+                <el-option label="增值税率" value="VATRate"></el-option>
+            </el-select>
+            <el-input v-if="batchAssignment.column" v-model="batchAssignment.value" placeholder="输入值" />
+            <template #footer>
+                <div>
+                    <el-button @click="batchSetDialog = false">取消</el-button>
+                    <el-button type="primary"
+                        @click="batchSetDialog = false, bathchSetTableValue(batchAssignment.column, batchAssignment.value)">
+                        确认
+                    </el-button>
+                </div>
+            </template>
+        </el-dialog>
     </div>
 </template>
 
@@ -1330,7 +1412,7 @@
 import { mapStores } from 'pinia';
 import { assetsProjectInfo } from '@/stores/assetsProjectStore';
 import { importEqptExcelData, getCalculateBaseInfo, getValuationBasisDate, generateEquipmentCalculate } from '@/api/assetsCalculate';
-import { getDataPage, updateData, getImpDataPage, updateImpData, getNonSDataPage, updateNonSData, getEqptTableFilterVO } from '@/api/assetsCalculateEqptData';
+import { getDataPage, updateData, updateBatch, getImpDataPage, updateImpData, updateBatchImpData, getNonSDataPage, updateNonSData, updateBatchNonSData, getEqptTableFilterVO } from '@/api/assetsCalculateEqptData';
 import { getDaysBetween } from '@/utils/date';
 import { eqptLifeIfrRefsList } from '@/api/eqptLifeIfrRefs';
 import { getPPIDownData, getPPIByNameType } from '@/api/eqptPPI';
@@ -1340,6 +1422,9 @@ export default {
     data() {
         return {
             activeName: 'all',
+            batchSetDialog: false,
+            // 批量赋值
+            batchAssignment: {},
             fileList: [],
             imageList: [],
             eqptDataQuery: {
@@ -1657,7 +1742,7 @@ export default {
                 }
             }
         },
-        // 更新国产设备测算
+        // 更新设备测算
         save(row) {
             updateData(row).then(res => {
                 if (res.code == 200) {
@@ -1669,6 +1754,18 @@ export default {
                 }
             })
         },
+        // 批量更新设备测算
+        saveBatch() {
+            updateBatch(this.eqptPageData).then(res => {
+                if (res.code == 200) {
+                    ElMessage({
+                        showClose: true,
+                        message: res.message,
+                        type: 'success'
+                    })
+                }
+            })
+        },
         // 通过设备名称判断参考数据中是否有符合的参考信息并设置
         mostSimilar() {
             for (let index = 0; index < this.eqptPageData.length; index++) {
@@ -1772,6 +1869,19 @@ export default {
                 }
             })
         },
+        // 批量更新进口设备测算
+        saveBatchImp() {
+            updateBatchImpData(this.eqptImpPageData).then(res => {
+                if (res.code == 200) {
+                    ElMessage({
+                        showClose: true,
+                        message: res.message,
+                        type: 'success'
+                    })
+                    this.getImpEqptDataPage();
+                }
+            })
+        },
         // 更新非标设备测算
         saveNonS(row) {
             updateNonSData(row).then(res => {
@@ -1785,6 +1895,19 @@ export default {
                 }
             })
         },
+        // 批量更新非标设备测算
+        saveBatchNonS() {
+            updateBatchNonSData(this.eqptNonSPageData).then(res => {
+                if (res.code == 200) {
+                    ElMessage({
+                        showClose: true,
+                        message: res.message,
+                        type: 'success'
+                    })
+                    this.getNonSEqptDataPage();
+                }
+            })
+        },
         // 获取表格过滤条件
         getEqptTableFilter(queryType, eqptType) {
             let params = {
@@ -1818,6 +1941,28 @@ export default {
                     this.eqptDataQuery.activationDateFilters = null
                 }
             })
+        },
+        // 给表格列进行统一赋值
+        bathchSetTableValue(propName, value) {
+            if (this.activeName === 'all') {
+                this.eqptPageData.forEach(item => {
+                    // 动态赋值,属性名由变量 propName 指定
+                    item[propName] = value;
+                });
+            }
+            if (this.activeName === 'imported') {
+                this.eqptImpPageData.forEach(item => {
+                    // 动态赋值,属性名由变量 propName 指定
+                    item[propName] = value;
+                });
+            }
+            if (this.activeName === 'nonStandard') {
+                this.eqptNonSPageData.forEach(item => {
+                    // 动态赋值,属性名由变量 propName 指定
+                    item[propName] = value;
+                });
+            }
+
         }
     },