skyline 2 年 前
コミット
472b1211e4

+ 10 - 2
entity/src/main/java/com/kym/entity/admin/Statements.java

@@ -6,8 +6,6 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
 
-import java.time.LocalDateTime;
-
 /**
  * <p>
  * 客户对账单
@@ -114,6 +112,16 @@ public class Statements extends BaseEntity {
      */
     private Integer splittingAmount;
 
+    /**
+     * 电损承担比例 0.30代表30%
+     */
+    private Double elecLossProportion;
+
+    /**
+     * 电损承担金额(分)
+     */
+    private Integer elecLossAmount;
+
     /**
      * 增值税率 0.06表示6%
      */

+ 5 - 1
mapper/src/main/resources/mappers/admin/StatementsMapper.xml

@@ -23,6 +23,8 @@
         <result column="actual_service_money" property="actualServiceMoney" />
         <result column="splitting_proportion" property="splittingProportion" />
         <result column="splitting_amount" property="splittingAmount" />
+        <result column="elec_loss_proportion" property="elecLossProportion" />
+        <result column="elec_loss_amount" property="elecLossAmount" />
         <result column="vat_rate" property="vatRate" />
         <result column="vat_amount" property="vatAmount" />
         <result column="actual_splitting_amount" property="actualSplittingAmount" />
@@ -32,7 +34,9 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        admin_user_id, admin_user_name, station_id, station_name, start_time, end_time, total_power, actual_power, elec_loss_power, total_money, elec_money, actual_elec_money, elec_loss_money, service_money, discount_amount, service_money_discount, actual_service_money, splitting_proportion, splitting_amount, vat_rate, vat_amount, actual_splitting_amount, status, remark
+        id,admin_user_id, admin_user_name, station_id, station_name, start_time, end_time, total_power, actual_power, elec_loss_power,
+        total_money, elec_money, actual_elec_money, elec_loss_money, service_money, discount_amount, service_money_discount,
+        actual_service_money, splitting_proportion, splitting_amount, elec_loss_proportion,elec_loss_amount,vat_rate, vat_amount, actual_splitting_amount, status, remark
     </sql>
 
 </mapper>

+ 7 - 2
service/src/main/java/com/kym/service/admin/impl/StatementsServiceImpl.java

@@ -52,7 +52,10 @@ public class StatementsServiceImpl extends ServiceImpl<StatementsMapper, Stateme
             var actualServiceMoney = statMonthInfo.getServiceMoney()
                     - statMonthInfo.getDiscountAmount()
                     - (int) ((statMonthInfo.getActualElecMoney() - statMonthInfo.getElecMoney()) * investorInfo.getElecLossProportion());
-            var splittingAmount = (int) (actualServiceMoney * investorInfo.getSplittingProportion());
+            // 总电损电费
+            var elecLossMoney = statMonthInfo.getActualElecMoney() - statMonthInfo.getElecMoney();
+            // 分成金额 = 实际参与分成的服务费 * 分成比例 - 电损金额 * 电损承担比例
+            var splittingAmount = (int) (actualServiceMoney * investorInfo.getSplittingProportion()) - (int) (elecLossMoney * investorInfo.getElecLossProportion());
             return new Statements()
                     .setAdminUserId(investorInfo.getAdminUserId())
                     .setAdminUserName(investorInfo.getAdminUserName())
@@ -65,13 +68,15 @@ public class StatementsServiceImpl extends ServiceImpl<StatementsMapper, Stateme
                     .setTotalMoney(statMonthInfo.getTotalMoney())
                     .setElecMoney(statMonthInfo.getElecMoney())
                     .setActualElecMoney(statMonthInfo.getActualElecMoney())// 实际抄表电费
-                    .setElecLossMoney(statMonthInfo.getActualElecMoney() - statMonthInfo.getElecMoney()) // 电损电费(分)
+                    .setElecLossMoney(elecLossMoney) // 电损电费(分)
                     .setServiceMoney(statMonthInfo.getServiceMoney())
                     .setDiscountAmount(statMonthInfo.getDiscountAmount())
                     .setServiceMoneyDiscount(statMonthInfo.getServiceMoneyDiscount())
                     .setActualServiceMoney(actualServiceMoney) // 实际参与分成的服务费(分)
                     .setSplittingProportion(investorInfo.getSplittingProportion()) // 分成比例 0.45表示45%
                     .setSplittingAmount(splittingAmount)  // 分成金额(分)
+                    .setElecLossProportion(investorInfo.getElecLossProportion()) // 电损承担比例
+                    .setElecLossAmount((int) (elecLossMoney * investorInfo.getElecLossProportion()))    // 电损承担金额
                     .setVatRate(investorInfo.getVatRate()) // 增值税率 0.06表示6%
                     .setVatAmount((int) (splittingAmount * investorInfo.getVatRate())) // 增值税额(分)
                     .setActualSplittingAmount(splittingAmount - (int) (splittingAmount * investorInfo.getVatRate())); // 实际分成金额(分)