diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/CallbackServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/CallbackServiceImpl.java
index 5513a61..9470d35 100644
--- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/CallbackServiceImpl.java
+++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/CallbackServiceImpl.java
@@ -196,6 +196,7 @@ public class CallbackServiceImpl implements CallbackService {
                     TimerTask task = new TimerTask() {
                         @Override
                         public void run() {
+                            logger.info("【微信支付回调】开始请求分账------------");
                             // 请求分账
                             List<CreateOrderReceiver> receivers = new ArrayList<>();
                             // 获取到合伙人的openid
@@ -203,14 +204,20 @@ public class CallbackServiceImpl implements CallbackService {
                             sysUser.setUserType("03");
                             sysUser.setAreaId(area.getAreaId());
                             List<SysUser> sysUsers = userMapper.selectUserList(sysUser);
-                            BigDecimal totalFee = order.getTotalFee();
+                            BigDecimal dividendAmount = BigDecimal.ZERO;
                             for (SysUser sysUser1 : sysUsers){
                                 AsUser asUser1 = userService.selectUserById(sysUser1.getAppUserId());
                                 if(asUser1!=null && asUser1.getWxopenid()!=null){
                                     CreateOrderReceiver receiver = new CreateOrderReceiver();
                                     receiver.setType(ReceiverType.PERSONAL_OPENID.name());
                                     receiver.setAccount(asUser1.getWxopenid());
-                                    BigDecimal multiply = totalFee.multiply(new BigDecimal(sysUser1.getDividendProportion()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(100));
+                                    String dividendItem = sysUser1.getDividendItem();
+                                    if(dividendItem.contains("1")){
+                                        dividendAmount.add(order.getRidingFee().add(order.getAppointmentFee()));//1-骑行费(骑行费+预约费)
+                                    }else if(dividendItem.contains("2")){
+                                        dividendAmount.add(order.getManageFee().add(order.getManageFee()));//2-调度费(调度费+管理费)
+                                    }
+                                    BigDecimal multiply = dividendAmount.multiply(new BigDecimal(sysUser1.getDividendProportion()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(100));
                                     logger.info(sysUser1.getUserName()+"分账比例:"+sysUser1.getDividendProportion()+"%,分账金额:"+multiply);
                                     receiver.setAmount(multiply.longValue());
                                     receiver.setDescription("系统自动分账");
@@ -226,7 +233,7 @@ public class CallbackServiceImpl implements CallbackService {
                             }
                         }
                     };
-                    timer.schedule(task, new Date(System.currentTimeMillis() + 30000));
+                    timer.schedule(task, new Date(System.currentTimeMillis() + 30000));// 30秒后发起分账
                 }else if(attachVo.getType().equals(ServiceConstants.BUSINESS_TYPE_APPOINTMENT)){
                     logger.info("【微信支付回调】取消预约支付");
                     // 2-取消预约支付
diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java
index 03f2405..a9b495d 100644
--- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java
+++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java
@@ -138,12 +138,14 @@ public class EtOperatingAreaServiceImpl extends ServiceImpl<EtOperatingAreaMappe
         Geometry geometry = GeoUtils.toGeometry(boundaryStr);
         String wkt = GeoUtils.wkt(geometry);
         etOperatingArea.setBoundary(wkt);
-        etAreaRuleMapper.deleteAreaRuleByAreaId(etOperatingArea.getAreaId());
         int i = dao.updateById(etOperatingArea);
         Long[] ruleIds = etOperatingArea.getRuleIds();
         if(ObjectUtil.isNotNull(ruleIds)){
-            for (Long ruleId:ruleIds){
-                etAreaRuleMapper.insert(EtAreaRule.builder().areaId(etOperatingArea.getAreaId()).ruleId(ruleId).build());
+            etAreaRuleMapper.deleteAreaRuleByAreaId(etOperatingArea.getAreaId());
+            if(ObjectUtil.isNotNull(ruleIds)){
+                for (Long ruleId:ruleIds){
+                    etAreaRuleMapper.insert(EtAreaRule.builder().areaId(etOperatingArea.getAreaId()).ruleId(ruleId).build());
+                }
             }
         }
         return i;
diff --git a/electripper-system/src/main/java/com/ruoyi/system/task/EtTask.java b/electripper-system/src/main/java/com/ruoyi/system/task/EtTask.java
index b7a733c..2f9525f 100644
--- a/electripper-system/src/main/java/com/ruoyi/system/task/EtTask.java
+++ b/electripper-system/src/main/java/com/ruoyi/system/task/EtTask.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.task;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.constant.ServiceConstants;
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -93,9 +94,18 @@ public class EtTask {
                 etDividendDetail.setTotalAmount(order1.getTotalFee());
                 etDividendDetail.setCreateTime(DateUtils.getNowDate());
                 etDividendDetail.setDividendProportion(user.getDividendProportion());
-                // todo 分账金额是骑行费,还是调度费,看分账项目
-                etDividendDetail.setDividendAmount(order1.getTotalFee().multiply(new BigDecimal(user.getDividendProportion()).divide(new BigDecimal(100),2, BigDecimal.ROUND_HALF_UP)));
-                etDividendDetail.setDividendItem(user.getDividendItem());
+                String dividendItem = user.getDividendItem();
+                // todo 分账金额是骑行费,还是调度费,看分账项目  分账项目:1-骑行费(骑行费+预约费);2-调度费(调度费+管理费)
+                BigDecimal dividendAmount = BigDecimal.ZERO;
+                if(dividendItem.contains("1")){
+                    dividendAmount.add(order1.getRidingFee().add(order1.getAppointmentFee()));//1-骑行费(骑行费+预约费)
+                }else if(dividendItem.contains("2")){
+                    dividendAmount.add(order1.getManageFee().add(order1.getManageFee()));//2-调度费(调度费+管理费)
+                }
+                BigDecimal divide = new BigDecimal(user.getDividendProportion()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
+                etDividendDetail.setDividendAmount(dividendAmount.multiply(divide));
+                etDividendDetail.setDividendItem(dividendItem);
+                log.info("保存分账明细 === " + JSON.toJSONString(etDividendDetail));
                 int i = dividendDetailService.insertEtDividendDetail(etDividendDetail);
                 if(i==0){
                     throw new ServiceException("保存分账明细失败");