Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 years ago
parent
commit
f47f95f480
16 changed files with 229 additions and 68 deletions
  1. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java
  2. 14 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/FeeSelectVO.java
  3. 4 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/OrderAcctVO.java
  4. 33 22
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  5. 16 0
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java
  6. 1 1
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderIndexController.java
  7. 0 8
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderItemController.java
  8. 13 2
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderFeeMapper.java
  9. 14 0
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderFeeMapper.xml
  10. 1 0
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml
  11. 18 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java
  12. 0 8
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderItemService.java
  13. 47 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderAddressServiceImpl.java
  14. 24 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java
  15. 1 13
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java
  16. 38 14
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java

@@ -61,6 +61,11 @@ public class OrderFee implements Serializable {
 	@ApiModelProperty(value = "客户ID")
 	private Long corpId;
 	/**
+	 * 车队ID
+	 */
+	@ApiModelProperty(value = "车队ID")
+	private Long fleetId;
+	/**
 	 * 费用ID
 	 */
 	@ApiModelProperty(value = "费用ID")

+ 14 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/FeeSelectVO.java

@@ -0,0 +1,14 @@
+package org.springblade.land.vo;
+
+import lombok.Data;
+
+@Data
+public class FeeSelectVO {
+
+	private Long fleetId;
+
+	private String fleetName;
+
+	private String fleetShortName;
+
+}

+ 4 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/OrderAcctVO.java

@@ -54,10 +54,14 @@ public class OrderAcctVO {
 
 	private BigDecimal extraAmountC;
 
+	private String extraAmountItemC;
+
 	private BigDecimal landAmountD;
 
 	private BigDecimal extraAmountD;
 
+	private String extraAmountItemD;
+
 	private String remarks;
 
 	private Integer status;

+ 33 - 22
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -30,6 +30,7 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.entity.DeliveryFees;
 import org.springblade.deliver.goods.entity.DeliveryItems;
 import org.springblade.deliver.goods.enums.DeliveryEnum;
 import org.springblade.deliver.goods.enums.DeliveryStatusEnum;
@@ -173,7 +174,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		if (temp) {
 			// 判断要发货物的金额和已收金额的大小
 			if (delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType())) {
-				R amount = this.deliveryAmount(collect, delivery.getTradeType());
+				R amount = this.deliveryAmount(collect, delivery.getDeliveryFeesList(), delivery.getTradeType());
 				if (!amount.isSuccess()) {
 					throw new RuntimeException(amount.getMsg());
 				}
@@ -599,42 +600,52 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 
 	/**
 	 * 查询已发货金额和本次发货金额和是否比已收金额小或者等于
+	 *
 	 * @param deliveryItemsList
 	 * @return
 	 */
-	public R  deliveryAmount(List<DeliveryItems> deliveryItemsList,String tradeType){
-		//先获取发货明细中的订单号,并将其分组
-		//获取每个订单号的已发货金额 和每个订单的已收金额
-		//若已发货金额加本次发货金额小于等于订单已收金额可以发货反之不能发货
+	public R deliveryAmount(List<DeliveryItems> deliveryItemsList, List<DeliveryFees> deliveryFeesList, String tradeType) {
+		// 先获取发货明细中的订单号,并将其分组
+		// 获取每个订单号的已发货金额 和每个订单的已收金额
+		// 若已发货金额加本次发货金额小于等于订单已收金额可以发货反之不能发货
 		List<String> collect = deliveryItemsList.stream().map(DeliveryItems::getSrcOrderNo).collect(Collectors.toList());
-		if (CollectionUtils.isNotEmpty(collect)){
+		if (CollectionUtils.isNotEmpty(collect)) {
 			for (String srcOrderNo : collect) {
-				BigDecimal newDelivery = new BigDecimal(BigInteger.ZERO);//本次发货金额
-				BigDecimal oldDelivery = new BigDecimal(BigInteger.ZERO);//已发货金额
-				BigDecimal gathering = new BigDecimal(BigInteger.ZERO);//已收金额
-				R<BigDecimal> financeAcc = financeClient.getFinanceAcc(srcOrderNo,tradeType);
-				if (financeAcc.isSuccess() && financeAcc.getData() != null && financeAcc.getData().compareTo(BigDecimal.ZERO) >0){
+				// 本次发货金额
+				BigDecimal newDelivery;
+				// 已发货金额
+				BigDecimal oldDelivery;
+				// 已收金额
+				BigDecimal gathering;
+				R<BigDecimal> financeAcc = financeClient.getFinanceAcc(srcOrderNo, tradeType);
+				if (financeAcc.isSuccess() && financeAcc.getData() != null && financeAcc.getData().compareTo(BigDecimal.ZERO) > 0) {
 					gathering = financeAcc.getData();
-				}else {
+				} else {
 					throw new RuntimeException("未找到收款记录");
 				}
-				//本次金额
+				// 本次金额
 				List<DeliveryItems> itemsList = deliveryItemsList.stream().filter(e -> e.getSrcOrderNo().equals(srcOrderNo)).collect(Collectors.toList());
-				//已发金额
-				List<DeliveryItems> deliveryItems = baseMapper.selectItem(SecureUtil.getTenantId(),DeliveryStatusEnum.DELIVER.getType(),srcOrderNo,tradeType);
-				newDelivery = itemsList.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//本次发货金额
-				oldDelivery = deliveryItems.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//历史发货金额
-				//原来的判断 条件 : if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) <= 0){
-				if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) == -1){
-					throw new RuntimeException("订单"+srcOrderNo+"发货金额超出 ,可发货金额为(CNY):"+(gathering.subtract(oldDelivery)).setScale(2,BigDecimal.ROUND_UP));
+				// 已发金额
+				List<DeliveryItems> deliveryItems = baseMapper.selectItem(SecureUtil.getTenantId(), DeliveryStatusEnum.DELIVER.getType(), srcOrderNo, tradeType);
+				// 本次发货金额
+				newDelivery = itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getContractAmount().multiply(y.getExRate())), BigDecimal::add);
+				// 历史发货金额
+				oldDelivery = deliveryItems.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getContractAmount().multiply(y.getExRate())), BigDecimal::add);
+				// 应收费用金额
+				BigDecimal ar = deliveryFeesList.stream().filter(e -> e.getFeesType() == 1).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getAmount()), BigDecimal::add);
+				gathering = gathering.subtract(ar);
+
+				// 原来的判断 条件 : if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) <= 0){
+				if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) < 0) {
+					throw new RuntimeException("订单" + srcOrderNo + "发货金额超出 ,可发货金额为(CNY):" + (gathering.subtract(oldDelivery)).setScale(2, RoundingMode.UP));
 				}
 				/*if (gathering.compareTo((newDelivery.add(oldDelivery))) < 0){
 					throw new RuntimeException("订单"+srcOrderNo+"可发货金额为:"+gathering.subtract(oldDelivery.add(newDelivery)));
 				}*/
 			}
 			return R.success("可以发货");
-		}else {
-			throw  new RuntimeException("未找到发货明细");
+		} else {
+			throw new RuntimeException("未找到发货明细");
 		}
 
 	}

+ 16 - 0
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java

@@ -169,4 +169,20 @@ public class OrderFeeController extends BladeController {
 		return R.status(orderFeeService.cancelConfirm(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 获取车队下拉
+	 */
+	@GetMapping("/fleet")
+	public R fleet(Long orderId) {
+		return R.data(orderFeeService.fleet(orderId));
+	}
+
+	/**
+	 * 获取车牌号下拉
+	 */
+	@GetMapping("/plate-no")
+	public R plateNo(Long orderId, Long fleetId) {
+		return R.data(orderFeeService.plateNo(orderId, fleetId));
+	}
+
 }

+ 1 - 1
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderIndexController.java

@@ -187,7 +187,7 @@ public class OrderIndexController extends BladeController {
 		long all = itemList.size();
 
 		// 未运行
-		long inactive = itemList.stream().filter(item -> item.getStatus() == 0 && item.getStatus() == 1).count();
+		long inactive = itemList.stream().filter(item -> item.getStatus() == 0 || item.getStatus() == 1).count();
 		mapTemp = new HashMap<>();
 		mapTemp.put("name", "未运行");
 		mapTemp.put("value", inactive);

+ 0 - 8
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderItemController.java

@@ -282,12 +282,4 @@ public class OrderItemController extends BladeController {
 		return R.status(orderItemService.changeVehicle(orderItem));
 	}
 
-	/**
-	 * 获取车牌号下拉
-	 */
-	@GetMapping("/plate-no")
-	public R plateNo(Long orderId) {
-		return R.data(orderItemService.plateNo(orderId));
-	}
-
 }

+ 13 - 2
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderFeeMapper.java

@@ -16,10 +16,13 @@
  */
 package org.springblade.land.mapper;
 
-import org.springblade.land.entity.OrderFee;
-import org.springblade.land.vo.OrderFeeVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.land.entity.OrderFee;
+import org.springblade.land.vo.FeeSelectVO;
+import org.springblade.land.vo.OrderFeeVO;
+
 import java.util.List;
 
 /**
@@ -39,4 +42,12 @@ public interface OrderFeeMapper extends BaseMapper<OrderFee> {
 	 */
 	List<OrderFeeVO> selectOrderFeePage(IPage page, OrderFeeVO orderFee);
 
+	/**
+	 * 获取车队下拉
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	List<FeeSelectVO> fleet(@Param("orderId") Long orderId);
+
 }

+ 14 - 0
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderFeeMapper.xml

@@ -30,4 +30,18 @@
         select * from land_order_fee where is_deleted = 0
     </select>
 
+    <select id="fleet" resultType="org.springblade.land.vo.FeeSelectVO">
+        select distinct t1.fleet_id   as fleetId,
+                        t2.cname      as fleetName,
+                        t2.short_name as fleetShortName
+        from land_order_item t1
+                 left join basic_corps_desc t2 on t1.fleet_id = t2.id
+        <where>
+            t1.kind = 2
+            and t1.is_deleted = 0
+            and t1.fleet_id is not null
+            <if test="orderId != null">and t1.order_id = #{orderId}</if>
+        </where>
+    </select>
+
 </mapper>

+ 1 - 0
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml

@@ -76,6 +76,7 @@
             <if test="acct.status == 3">and t2.status = 4</if>
         </where>
         group by t1.id, t2.plate_no
+        order by t2.arrival_time desc
     </select>
 
 </mapper>

+ 18 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.client.entity.CommonFile;
 import org.springblade.land.entity.OrderFee;
+import org.springblade.land.vo.FeeSelectVO;
 import org.springblade.land.vo.OrderFeeVO;
 
 import java.util.List;
@@ -97,4 +98,21 @@ public interface IOrderFeeService extends IService<OrderFee> {
 	 */
 	boolean cancelConfirm(List<Long> idList);
 
+	/**
+	 * 获取车队下拉
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	List<FeeSelectVO> fleet(Long orderId);
+
+	/**
+	 * 获取车牌号下拉
+	 *
+	 * @param orderId
+	 * @param fleetId
+	 * @return
+	 */
+	List<String> plateNo(Long orderId, Long fleetId);
+
 }

+ 0 - 8
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderItemService.java

@@ -188,12 +188,4 @@ public interface IOrderItemService extends IService<OrderItem> {
 	 */
 	boolean changeVehicle(OrderItem orderItem);
 
-	/**
-	 * 获取车牌号下拉
-	 *
-	 * @param orderId
-	 * @return
-	 */
-	List<String> plateNo(Long orderId);
-
 }

+ 47 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderAddressServiceImpl.java

@@ -16,13 +16,20 @@
  */
 package org.springblade.land.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.land.entity.Order;
 import org.springblade.land.entity.OrderAddress;
 import org.springblade.land.mapper.OrderAddressMapper;
+import org.springblade.land.mapper.OrderMapper;
 import org.springblade.land.service.IOrderAddressService;
 import org.springblade.land.vo.OrderAddressVO;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -33,20 +40,60 @@ import java.util.List;
  * @since 2022-03-07
  */
 @Service
+@AllArgsConstructor
 public class OrderAddressServiceImpl extends ServiceImpl<OrderAddressMapper, OrderAddress> implements IOrderAddressService {
 
+	private final OrderMapper orderMapper;
+
 	@Override
 	public IPage<OrderAddressVO> selectOrderAddressPage(IPage<OrderAddressVO> page, OrderAddressVO orderAddress) {
 		return page.setRecords(baseMapper.selectOrderAddressPage(page, orderAddress));
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean removeOrderAddress(List<Long> idList) {
 		idList.forEach(id -> {
+			OrderAddress temp = baseMapper.selectById(id);
+
 			OrderAddress orderAddress = new OrderAddress();
 			orderAddress.setId(id);
 			orderAddress.setIsDeleted(1);
 			baseMapper.updateById(orderAddress);
+
+			List<OrderAddress> addressList = baseMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
+				.eq(OrderAddress::getOrderId, temp.getOrderId())
+				.eq(OrderAddress::getIsDeleted, 0)
+			);
+
+			int i = 1;
+			StringBuilder addressDetail = new StringBuilder();
+			for (OrderAddress address : addressList) {
+				if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+					addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
+				} else {
+					addressDetail.append(i).append(".").append("(");
+				}
+
+				if (StringUtil.isNotBlank(address.getContacts())) {
+					addressDetail.append(address.getContacts());
+				}
+				if (StringUtil.isNotBlank(address.getTel())) {
+					addressDetail.append(" ").append(address.getTel());
+				}
+				if (StringUtil.isNotBlank(address.getAddress())) {
+					addressDetail.append(") ").append(address.getAddress()).append("\n");
+				} else {
+					addressDetail.append(") ").append("\n");
+				}
+
+				i++;
+			}
+
+			Order order = new Order();
+			order.setId(temp.getOrderId());
+			order.setAddressDetail(addressDetail.toString());
+			orderMapper.updateById(order);
 		});
 		return true;
 	}

+ 24 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.land.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -32,8 +33,11 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.OrderFee;
+import org.springblade.land.entity.OrderItem;
 import org.springblade.land.mapper.OrderFeeMapper;
+import org.springblade.land.mapper.OrderItemMapper;
 import org.springblade.land.service.IOrderFeeService;
+import org.springblade.land.vo.FeeSelectVO;
 import org.springblade.land.vo.OrderFeeVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -42,6 +46,7 @@ import org.springframework.stereotype.Service;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 陆运订单费用表 服务实现类
@@ -53,6 +58,8 @@ import java.util.List;
 @AllArgsConstructor
 public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> implements IOrderFeeService {
 
+	private final OrderItemMapper orderItemMapper;
+
 	private final ICommonFileClient commonFileClient;
 
 	private final ICorpsDescClient corpsDescClient;
@@ -165,4 +172,21 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 		return true;
 	}
 
+	@Override
+	public List<FeeSelectVO> fleet(Long orderId) {
+		return baseMapper.fleet(orderId);
+	}
+
+	@Override
+	public List<String> plateNo(Long orderId, Long fleetId) {
+		return orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+			.select(OrderItem::getPlateNo)
+			.eq(ObjectUtil.isNotEmpty(orderId), OrderItem::getOrderId, orderId)
+			.eq(ObjectUtil.isNotEmpty(fleetId), OrderItem::getFleetId, fleetId)
+			.isNotNull(OrderItem::getPlateNo)
+			.eq(OrderItem::getKind, 2)
+			.eq(OrderItem::getIsDeleted, 0)
+		).stream().map(OrderItem::getPlateNo).distinct().collect(Collectors.toList());
+	}
+
 }

+ 1 - 13
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -143,7 +143,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		long all = itemList.size();
 		long one = itemList.stream().filter(item -> item.getStatus() == 1).count();
 		long two = itemList.stream().filter(item -> item.getStatus() == 2).count();
-		long three = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 3).count();
+		long three = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
 		long four = itemList.stream().filter(item -> item.getStatus() == 4).count();
 
 		Map<String, Object> data = new HashMap<>();
@@ -583,18 +583,6 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		return true;
 	}
 
-	@Override
-	public List<String> plateNo(Long orderId) {
-		return baseMapper.selectList(new LambdaQueryWrapper<OrderItem>()
-			.select(OrderItem::getPlateNo)
-			.eq(OrderItem::getOrderId, orderId)
-			.isNotNull(OrderItem::getPlateNo)
-			.eq(OrderItem::getTenantId, AuthUtil.getTenantId())
-			.eq(OrderItem::getKind, 2)
-			.eq(OrderItem::getIsDeleted, 0)
-		).stream().map(OrderItem::getPlateNo).distinct().collect(Collectors.toList());
-	}
-
 	/**
 	 * 添加变更记录
 	 *

+ 38 - 14
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -414,7 +414,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			zero = itemList.stream().filter(item -> item.getStatus() == 0).count();
 			one = itemList.stream().filter(item -> item.getStatus() == 1).count();
 			two = itemList.stream().filter(item -> item.getStatus() == 2).count();
-			three = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 3).count();
+			three = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
 			four = itemList.stream().filter(item -> item.getStatus() == 4).count();
 		}
 
@@ -706,8 +706,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(OrderFee::getIsDeleted, 0)
 			);
 
+			StringBuilder extraAmountItemD = new StringBuilder();
+			StringBuilder extraAmountItemC = new StringBuilder();
+			for (OrderFee fee : feeList) {
+				if (!ObjectUtil.isEmpty(fee.getFeeId())) {
+					R<FeesDesc> feesMessage = feesDescClient.detail(fee.getFeeId());
+					if (feesMessage.isSuccess() && feesMessage.getData() != null) {
+						fee.setFeeName(feesMessage.getData().getCname());
+					}
+
+					if (fee.getType() == 1) {
+						extraAmountItemD.append(fee.getFeeName()).append(":").append(fee.getAmount()).append("\n");
+					} else {
+						extraAmountItemC.append(fee.getFeeName()).append(":").append(fee.getAmount()).append("\n");
+					}
+				}
+			}
+
 			acct.setExtraAmountD(feeList.stream().filter(e -> e.getType() == 1).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getAmount()), BigDecimal::add));
+			acct.setExtraAmountItemD(extraAmountItemD.toString());
 			acct.setExtraAmountC(feeList.stream().filter(e -> e.getType() == 2).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getAmount()), BigDecimal::add));
+			acct.setExtraAmountItemC(extraAmountItemC.toString());
 			acct.setProfit(acct.getLandAmountD().add(acct.getExtraAmountD()).subtract(acct.getLandAmountC()).subtract(acct.getExtraAmountC()));
 			if (feeList.stream().anyMatch(e -> e.getConfirmStatus() == 1)) {
 				acct.setConfirmStatus(1);
@@ -764,6 +783,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	private void dealExtraInfo(Order order, StringBuilder addressDetail) {
+		int i = 1;
 		for (OrderAddress address : order.getOrderAddressList()) {
 			if (ObjectUtil.isEmpty(address.getId())) {
 				address.setOrderId(order.getId());
@@ -777,21 +797,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderAddressMapper.updateById(address);
 			}
 
-			if (StringUtil.isNotBlank(address.getCorpName())) {
-				addressDetail.append(address.getSort()).append(".").append(address.getCorpName()).append("(");
+			if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+				addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
+			} else {
+				addressDetail.append(i).append(".").append("(");
+			}
 
-				if (StringUtil.isNotBlank(address.getContacts())) {
-					addressDetail.append(address.getContacts());
-				}
-				if (StringUtil.isNotBlank(address.getTel())) {
-					addressDetail.append(" ").append(address.getTel());
-				}
-				if (StringUtil.isNotBlank(address.getAddress())) {
-					addressDetail.append(") ").append(address.getAddress()).append("\n");
-				} else {
-					addressDetail.append(") ").append("\n");
-				}
+			if (StringUtil.isNotBlank(address.getContacts())) {
+				addressDetail.append(address.getContacts());
 			}
+			if (StringUtil.isNotBlank(address.getTel())) {
+				addressDetail.append(" ").append(address.getTel());
+			}
+			if (StringUtil.isNotBlank(address.getAddress())) {
+				addressDetail.append(") ").append(address.getAddress()).append("\n");
+			} else {
+				addressDetail.append(") ").append("\n");
+			}
+
+			i++;
 		}
 
 		List<CommonFile> fileList = order.getFileList();