فهرست منبع

收款比例字段计算

chenj 5 روز پیش
والد
کامیت
d1ff076022

+ 2 - 0
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractLiftServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 
 import javax.annotation.Resource;
 
+import static com.ruoyi.project.business.service.impl.TqContractServiceImpl.countCollectionRatio;
 import static com.ruoyi.project.business.service.impl.TqContractServiceImpl.formatBigDecimal;
 
 /**
@@ -179,6 +180,7 @@ public class TqContractLiftServiceImpl implements ITqContractLiftService
             if(signingDateListIdAndRateMap.containsKey(Long.parseLong(item.getCurrencyId()))){
                 item.setRate4SigningContracts(signingDateListIdAndRateMap.get(Long.parseLong(item.getCurrencyId())));
             }
+            item.setCollectionRatio(countCollectionRatio(item.getReceivedAmount(),item.getAccountsReceivableBalance()));
         });
         return tqContractLiftMapper.updateTqContractLiftBatch(tqContractLiftList);
     }

+ 18 - 0
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractServiceImpl.java

@@ -52,6 +52,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -317,6 +318,11 @@ public class TqContractServiceImpl implements ITqContractService
         return tqContractMapper.updateTqContract(tqContractDto);
     }
 
+     /**
+      * @Author Chenj
+      * @Description 将导出的价格格式化  货币开头    三位一逗且保留两位小数
+      * @Date 15:56 2024/9/14
+      **/
     public static String formatBigDecimal(BigDecimal value,String unit) {
         if(value != null){
             DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
@@ -399,6 +405,7 @@ public class TqContractServiceImpl implements ITqContractService
             item.setContractNoVersionNo(tqContractDto.getContractNo()+"-"+tqContractDto.getVersion());
             item.setPermissionChar(SecurityUtils.getPermissionCharIns());
             item.setType(tqContractDto.getType());
+            item.setCollectionRatio(countCollectionRatio(item.getReceivedAmount(),item.getAccountsReceivableBalance()));
             //将签单币种汇率赋值
             if(scheduleListIdAndRateMap.containsKey(Long.parseLong(item.getCurrencyId()))){
                 item.setRate4ProductionScheduling(scheduleListIdAndRateMap.get(Long.parseLong(item.getCurrencyId())));
@@ -415,6 +422,17 @@ public class TqContractServiceImpl implements ITqContractService
         return tqContractLiftList;
     }
 
+    public static String countCollectionRatio(BigDecimal a,BigDecimal b) {
+        //只有两个金额都在才做计算
+        if(a == null || b== null){
+            return null;
+        }
+        // 计算百分比
+        BigDecimal percentage = a.divide(b, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
+        // 保留两位小数并格式化为字符串
+        String formattedPercentage = percentage.setScale(2, RoundingMode.HALF_UP).toPlainString() + "%";
+        return formattedPercentage;
+    }
 
 
     /**

+ 1 - 1
ruoyi-ui-vue2/src/views/contract/index.vue

@@ -39,7 +39,7 @@
         <Column :label="$t('contract.paymentMethod')" :searchParams="queryParams" :showSearch="true" prop="paymentMethod" searchType="select"  selectMore
                 :searchDict="dict.type.contract_payment_method"/>
 
-        <!--款比例46-->
+        <!--款比例46-->
         <Column :label="$t('contract.paymentRatio')" :searchParams="queryParams" :showSearch="true" prop="paymentRatio"
                 searchType="select" :searchDict="dict.type.contract_payment_ratio" />
         <!--销售模式-->

+ 7 - 0
ruoyi-ui-vue2/src/views/contract/lift/index.vue

@@ -181,6 +181,10 @@
         <!--收款比例46-->
         <Column :label="$t('contract.paymentRatio')" :searchParams="queryParams" :showSearch="true" prop="paymentRatio"
                 searchType="select" :searchDict="dict.type.contract_payment_ratio" v-if="checkPermi(['user:contract:lift:paymentRatio'])"/>
+
+        <!--收款比例46-->
+        <Column label="收款比例" :searchParams="queryParams" :showSearch="true" prop="collectionRatio"  v-if="checkPermi(['user:contract:lift:collectionRatio'])"/>
+
         <!--应收余额47-->
         <Column :label="$t('lift.accountsReceivableBalance')" :searchParams="queryParams" prop="accountsReceivableBalance" v-if="checkPermi(['user:contract:lift:accountsReceivableBalance'])">
           <template #default="{ row }">
@@ -436,6 +440,7 @@
           <!--收款比例46  可修改-->
           <Column  :label="$t('contract.paymentRatio')"  prop="paymentRatio" searchType="select" :searchDict="dict.type.contract_payment_ratio"  v-if="checkPermi(['user:contract:lift:paymentRatioEdit'])"/>
 
+          <Column label="收款比例" prop="collectionRatio"  v-if="checkPermi(['user:contract:lift:collectionRatio'])"/>
           <!--应收余额47 可修改-->
           <Column  :label="$t('lift.accountsReceivableBalance')"  prop="accountsReceivableBalance" v-if="checkPermi(['user:contract:lift:accountsReceivableBalanceEdit'])">
             <template v-slot="scope">
@@ -881,6 +886,8 @@ export default {
 
     /** 重置按钮操作 todo:待补充*/
     resetQuery() {
+      collectionRatio
+      this.$set(this.queryParams, 'collectionRatio', null)
       this.$set(this.queryParams, 'contractNo', null)
       this.$set(this.queryParams, 'contractCustomer', null)
       this.$set(this.queryParams, 'versionNo', null)