Kaynağa Gözat

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

lazhaoqian 3 yıl önce
ebeveyn
işleme
543c82dc50

+ 39 - 8
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/Order.java

@@ -27,6 +27,7 @@ import org.springblade.client.entity.CommonFile;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -55,6 +56,13 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "订单号")
 	private String orderNo;
 	/**
+	 * 业务日期
+	 */
+	@ApiModelProperty(value = "业务日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date bsDate;
+	/**
 	 * 业务类型
 	 */
 	@ApiModelProperty(value = "业务类型")
@@ -75,6 +83,16 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "业务员")
 	private Long salesman;
 	/**
+	 * 业务员部门
+	 */
+	@ApiModelProperty(value = "业务员部门")
+	private Long salesmanDept;
+	/**
+	 * 电话
+	 */
+	@ApiModelProperty(value = "电话")
+	private String tel;
+	/**
 	 * 所属公司
 	 */
 	@ApiModelProperty(value = "所属公司")
@@ -85,27 +103,32 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "提单号")
 	private String billNo;
 	/**
+	 * 票据号
+	 */
+	@ApiModelProperty(value = "票据号")
+	private String receiptNo;
+	/**
 	 * 场站
 	 */
 	@ApiModelProperty(value = "场站")
 	private String station;
 	/**
-	 * 到场时间
+	 * 货运日期
 	 */
-	@ApiModelProperty(value = "到场时间")
+	@ApiModelProperty(value = "货运日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date arrivalTime;
 	/**
-	 * 工厂
+	 * 船名航次
 	 */
-	@ApiModelProperty(value = "工厂")
+	@ApiModelProperty(value = "船名航次")
 	private String factory;
 	/**
-	 * 货物
+	 * 预配箱量
 	 */
-	@ApiModelProperty(value = "货物")
-	private String goods;
+	@ApiModelProperty(value = "预配箱量")
+	private String expectCtnQty;
 	/**
 	 * 订舱代理
 	 */
@@ -129,7 +152,7 @@ public class Order implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date etd;
 	/**
-	 * 截日期
+	 * 截日期
 	 */
 	@ApiModelProperty(value = "截关日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@@ -143,6 +166,11 @@ public class Order implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date siCutoffDate;
 	/**
+	 * 运费
+	 */
+	@ApiModelProperty(value = "运费")
+	private BigDecimal freight;
+	/**
 	 * 状态(待补充)
 	 */
 	@ApiModelProperty(value = "状态(待补充)")
@@ -219,6 +247,9 @@ public class Order implements Serializable {
 	private String corpName;
 
 	@TableField(exist = false)
+	private String salesmanName;
+
+	@TableField(exist = false)
 	private String ctnDetail;
 
 	@TableField(exist = false)

+ 13 - 3
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderAddress.java

@@ -67,16 +67,26 @@ public class OrderAddress implements Serializable {
 	@ApiModelProperty(value = "排序")
 	private Integer sort;
 	/**
-	 * 省市区
+	 * 联系人
 	 */
-	@ApiModelProperty(value = "省市区")
-	private String region;
+	@ApiModelProperty(value = "联系人")
+	private String contacts;
+	/**
+	 * 电话
+	 */
+	@ApiModelProperty(value = "电话")
+	private String tel;
 	/**
 	 * 详细地址
 	 */
 	@ApiModelProperty(value = "详细地址")
 	private String address;
 	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
+	/**
 	 * 租户
 	 */
 	@ApiModelProperty(value = "租户")

+ 5 - 3
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -71,6 +71,11 @@ public class OrderItem implements Serializable {
 	@ApiModelProperty(value = "类型(1-委派、2-调度)")
 	private Integer kind;
 	/**
+	 * 货物
+	 */
+	@ApiModelProperty(value = "货物")
+	private String goods;
+	/**
 	 * 箱号
 	 */
 	@ApiModelProperty(value = "箱号")
@@ -348,9 +353,6 @@ public class OrderItem implements Serializable {
 	private String factory;
 
 	@TableField(exist = false)
-	private String goods;
-
-	@TableField(exist = false)
 	private String beginArrivalTime;
 
 	@TableField(exist = false)

+ 2 - 3
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -85,9 +85,8 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 	@Override
 	public IPage<OrderItem> getList(OrderItem orderItem, Query query) {
 		List<Long> orderIdList = Collections.emptyList();
-		if (StringUtil.isNotBlank(orderItem.getGoods()) || StringUtil.isNotBlank(orderItem.getBelongCompany()) || StringUtil.isNotBlank(orderItem.getStation()) || StringUtil.isNotBlank(orderItem.getFactory())) {
+		if (StringUtil.isNotBlank(orderItem.getBelongCompany()) || StringUtil.isNotBlank(orderItem.getStation()) || StringUtil.isNotBlank(orderItem.getFactory())) {
 			orderIdList = orderMapper.selectList(new LambdaQueryWrapper<Order>()
-				.like(StringUtil.isNotBlank(orderItem.getGoods()), Order::getGoods, orderItem.getGoods())
 				.like(StringUtil.isNotBlank(orderItem.getBelongCompany()), Order::getBelongCompany, orderItem.getBelongCompany())
 				.like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
 				.like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
@@ -111,6 +110,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		}
 
 		itemQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), OrderItem::getOrderId, orderIdList)
+			.like(StringUtil.isNotBlank(orderItem.getGoods()), OrderItem::getGoods, orderItem.getGoods())
 			.like(StringUtil.isNotBlank(orderItem.getBillNo()), OrderItem::getBillNo, orderItem.getBillNo())
 			.like(StringUtil.isNotBlank(orderItem.getTel()), OrderItem::getTel, orderItem.getTel())
 			.like(StringUtil.isNotBlank(orderItem.getCtnNo()), OrderItem::getCtnNo, orderItem.getCtnNo())
@@ -127,7 +127,6 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 			Order order = orderMapper.selectById(record.getOrderId());
 			record.setOrderNo(order.getOrderNo());
 			record.setBelongCompany(order.getBelongCompany());
-			record.setGoods(order.getGoods());
 			record.setStation(order.getStation());
 			record.setFactory(order.getFactory());
 			record.setAddressDetail(order.getAddressDetail());

+ 37 - 17
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -35,6 +35,8 @@ import org.springblade.land.mapper.*;
 import org.springblade.land.service.IOrderService;
 import org.springblade.land.util.MessageUtil;
 import org.springblade.land.vo.OrderVO;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -72,6 +74,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	private final IMessageClient messageClient;
 
+	private final IUserClient userClient;
+
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
 		return page.setRecords(baseMapper.selectOrderPage(page, order));
@@ -178,9 +182,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
+			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
 			.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
 			.like(StringUtil.isNotBlank(order.getBillNo()), Order::getBillNo, order.getBillNo())
-			.like(StringUtil.isNotBlank(order.getGoods()), Order::getGoods, order.getGoods())
 			.like(StringUtil.isNotBlank(order.getBelongCompany()), Order::getBelongCompany, order.getBelongCompany())
 			.like(StringUtil.isNotBlank(order.getStation()), Order::getStation, order.getStation())
 			.like(StringUtil.isNotBlank(order.getFactory()), Order::getFactory, order.getFactory())
@@ -206,19 +210,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 
+			if (!ObjectUtil.isEmpty(record.getSalesman())) {
+				R<User> user = userClient.userInfoById(record.getSalesman());
+				if (user.isSuccess() && user.getData() != null) {
+					record.setSalesmanName(user.getData().getRealName());
+				}
+			}
+
 			// 列表箱量显示处理
 			if (record.getStatus() == 0) {
 				List<OrderItem> itemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+					.isNotNull(OrderItem::getCtnType)
+					.ne(OrderItem::getCtnQuantity, 0)
 					.eq(OrderItem::getOrderId, record.getId())
 					.eq(OrderItem::getKind, 1)
 					.eq(OrderItem::getIsDeleted, 0));
 
 				if (CollectionUtil.isNotEmpty(itemList)) {
+					Map<String, Long> ctnMap = itemList.stream().collect(Collectors.groupingBy(OrderItem::getCtnType, Collectors.summingLong(OrderItem::getCtnQuantity)));
 					StringBuilder ctnDetail = new StringBuilder();
-					Integer statusCount = 0;
-					for (OrderItem item : itemList) {
-						ctnDetail.append(item.getCtnType()).append("×").append(item.getCtnQuantity()).append(",");
-						statusCount += item.getCtnQuantity();
+					Long statusCount = 0L;
+					for (Map.Entry<String, Long> entry : ctnMap.entrySet()) {
+						ctnDetail.append(entry.getKey()).append("×").append(entry.getValue()).append(",");
+						statusCount += entry.getValue();
 					}
 					if (ctnDetail.length() > 0) {
 						record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
@@ -374,7 +388,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 
 		long orderId = order.getId();
-		order.getItemList().forEach(item -> {
+
+		BigDecimal freight = BigDecimal.ZERO;
+		for (OrderItem item : order.getItemList()) {
 			if (ObjectUtil.isEmpty(item.getId())) {
 				item.setOrderId(orderId);
 				item.setBillNo(order.getBillNo());
@@ -389,10 +405,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				item.setUpdateTime(new Date());
 				orderItemMapper.updateById(item);
 			}
-		});
 
-		List<OrderAddress> addressList = order.getOrderAddressList();
-		addressList.forEach(address -> {
+			freight = freight.add(item.getLandAmountD().multiply(new BigDecimal(String.valueOf(item.getCtnQuantity()))));
+		}
+
+		StringBuilder addressDetail = new StringBuilder();
+		for (OrderAddress address : order.getOrderAddressList()) {
 			if (ObjectUtil.isEmpty(address.getId())) {
 				address.setOrderId(orderId);
 				address.setTenantId(AuthUtil.getTenantId());
@@ -404,18 +422,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				address.setUpdateTime(new Date());
 				orderAddressMapper.updateById(address);
 			}
-		});
 
-		StringBuilder addressDetail = new StringBuilder();
-		for (OrderAddress address : addressList) {
 			if (StringUtil.isNotBlank(address.getAddress())) {
-				addressDetail.append(address.getSort()).append(":").append(address.getCorpName()).append("——").append(address.getAddress()).append(";\n");
+				addressDetail.append(address.getSort()).append(".")
+					.append(address.getCorpName()).append("(")
+					.append(address.getContacts()).append(" ")
+					.append(address.getTel()).append(") ")
+					.append(address.getAddress()).append(";\n");
 			}
 		}
-		if (addressDetail.length() > 0) {
-			order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());
-		}
-		baseMapper.updateById(order);
 
 		order.getOrderFeeList().forEach(fee -> {
 			if (ObjectUtil.isEmpty(fee.getId())) {
@@ -440,6 +455,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		});
 		commonFileClient.saveList(fileList);
 
+		order.setFreight(freight);
+		if (addressDetail.length() > 0) {
+			order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());
+		}
+		baseMapper.updateById(order);
 		return orderId;
 	}